我使用Handlebars为Angular应用程序进行动态模板的客户端预处理。我需要Handlebars进程渲染一些包含{{ this notation }}
的Angular标记,该标记用于角度模板引擎,而不是Handlebars模板引擎。
{{This is a Handlebars expression that contains an {{Angular expression}}...}}
这里有区分Handlebars和Angular的双花括号表示法的语法吗?我不想更改Angular的语法,因为我有大量依赖于该语法的代码。我可以调整Handlebars语法吗?
答案 0 :(得分:4)
Igor Raush的答案中的语法是针对Mustache的。把手不支持此功能。
Handlebars允许您在花括号之前使用和反斜杠转义单行。但出于某种原因,你不会在他们的文档中找到它。
这并没有解决问题中嵌套表达式的边缘情况,但是我可以解决问题的最接近的情况,并且可能对面临类似问题的人有用。
以下是一个例子:
<div>{{thisWillBeProcessedByHandlebars}}</div>
<div>\{{ThisWontBeProcessedByHandlebars}}</div>
答案 1 :(得分:2)
您可以更改Handlebars或Angular模板分隔符:
<强>角强>
首先(全球设定)
app.config(['$interpolateProvider', function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
}]);
然后
<% This is an AngularJS expression that contains a {{ Handlebars expression }} %>
<强>车把强>
{{=<% %>=}} // this kind of thing can be done as many times as needed
{{ This is an AngularJS expression that contains a <% Handlebars expression %> }}