Angularjs ng在自定义指令中重复:语法错误:Token'$指数';出人意料
在AngularJS中,此操作失败并出现错误:Angularjs ng在自定义指令中重复:语法错误:Token'$指数';出人意料,angularjs,Angularjs,在AngularJS中,此操作失败并出现错误: 错误消息: Error: [$parse:syntax] Syntax Error: Token '$index' is unexpected, expecting [:] at column 3 of the expression [{{$index}}] starting at [$index}}]. 以下是指令: app.directive('myDirective',function(){ 返回{ 限制:'E', 作用域:{foo:'
错误消息:
Error: [$parse:syntax] Syntax Error: Token '$index' is unexpected, expecting [:] at column 3 of the expression [{{$index}}] starting at [$index}}].
以下是指令:
app.directive('myDirective',function(){
返回{
限制:'E',
作用域:{foo:'=',myIndex:'='},
templateUrl:'directions/myDirective.html'
};
});
这似乎只是自定义指令的问题。如果我尝试这样做:
<div ng-repeat="foo in foos" style="padding: {{$index}}px;">
index == {{$index}}
</div>
索引=={{$index}}
由于您正在使用=
声明隔离作用域属性,Angular需要一个未插值的属性:
为了在插值变为@
时插入$索引
值:
scope: { foo: '=', myIndex: '@' },
然后使用:
<my-directive ng-repeat="foo in foos" foo="foo" my-index="{{$index}}"/>
如果我这样做,它只会获取文本字符串“$index”
(不带引号),而不是$index
的值。如何使属性成为插值属性?将=
更改为@
。这是一个字面的,插值的值。谢谢,这很有效。我注意到您用它更新了答案,但是应该注意的是,使用myIndex:'='
和myIndex=“$index”
,传递了文本字符串$index
,因此答案的第一部分没有帮助。