我想改变AngularJS模板(ngBind)的分隔符
<div>{{hoge}}</div>
我想把↑变成↓,就像那样的东西。
<div>%%hoge%%</div>
因为搜索不到,所以我通过grep命令搜索源代码来寻找。
当我使用”angularjs分隔符”进行搜索时,结果显示…
Golang模板与AngularJS分隔符冲突
解决Jinja2和AngularJS变量范围的竞争方法
在Golang+Revel环境中使用AngularJS的技巧
但是这个不完全是 AngularJS 的问题,而是因为修改了服务器端(?)的分隔符,所以与要求不同。
你的手机是什么品牌?
首先,直接从未经拼接、缩小和压缩的angular.js文件中进行grep操作。
$ grep "{{" angular.js | wc -l
248
虽然写着wc -l,但实际上是有248行。而且还有很多注释行。
2 (两)
所以,接下来就将注释行删除。
$ grep -v "\s*\*" angular.js | grep "{{" | wc -l
163
减少了很多。在这附近,虽然有一些线索可以找到,但还需要再深入调查一下。
三
由于在Angular.js的注释行中,编写了生成示例的HTML,因此假设会删除类似标签的内容并将其赋值给变量,我们可以添加=作为条件。
$ grep -v "\s*\*" angular.js | grep -v "\s*<" | grep "{{" | grep "=" | wc -l
8
$ grep -v "\s*\*" angular.js | grep -v "\s*<" | grep "{{" | grep "="
I can add: {{a}} + {{b}} = {{ a+b }}
I can add: {{a}} + {{b}} = {{ a+b }}
I can add: {{a}} + {{b}} = {{ a+b }}
$scope.html = 'Hello {{name}}';
denormalizeTemplate = (startSymbol == '{{' || endSymbol == '}}')
var startSymbol = '{{';
id="{{name}}"
whenExp = attr.$attr.when && element.attr(attr.$attr.when), // we have {{}} in attrs
对于这个问题,从任何角度来看,只要搜索 startSymbol ,就能明白……这一点是很清楚的啊。嗯。
四
$ grep -n "var startSymbol " angular.js
7409: var startSymbol = $interpolate.startSymbol(),
10773: var startSymbol = '{{';
$interpolate有一个startSymbol方法,这很可疑。我进行了搜索。
5岁
非常客气地,以下是写得如下。
使用$interpolateProvider.startSymbol来更改符号。
当我查看这个链接时,在示例中找到了我想要做的事情。
總結
只要在设定的 App 配置中进行修改即可。
var app = angular.module('hogeApp', []);
app.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('%%');
$interpolateProvider.endSymbol('%%');
});
不过我觉得这个影响范围太大了啊。。。
不用多说
当我在搜索「angularjs分隔符」时,它立刻就出现了。。。
javascript – Angular JS自定义分隔符 – Stack Overflow