在AngularJS中,失败并出现错误:
<my-directive ng-repeat="foo in foos" foo="foo" my-index="{{$index}}"/>
错误讯息:
Error: [$parse:syntax] Syntax Error: Token '$index' is unexpected, expecting [:] at column 3 of the expression [{{$index}}] starting at [$index}}].
这是指令:
app.directive('myDirective', function() {
return {
restrict: 'E',
scope: { foo: '=', myIndex: '=' },
templateUrl: 'directives/myDirective.html'
};
});
这似乎只是自定义指令的问题。如果我试试这个:
<div ng-repeat="foo in foos" style="padding: {{$index}}px;">
index == {{$index}}
</div>
答案 0 :(得分:8)
由于您使用=
来声明隔离的范围属性,因此Angular期望一个未插值的属性:
为了将$index
值作为插值改变为@
:
scope: { foo: '=', myIndex: '@' },
然后使用:
<my-directive ng-repeat="foo in foos" foo="foo" my-index="{{$index}}"/>