我正在尝试设置一个指令
project.directive('recordView', function () {
return {
restrict: 'E',
scope: {
recordId: '@'
},
templateUrl: '/scripts/templates/record-view-template.html',
controller: 'RecordViewController',
link: function (scope, element, attrs) {
scope.$watch('recordId', function (value) {
console.log(value);
if (value) {
scope.resp.RecordId = 0
scope.resp.RecordId = eval('(' + value + ')');
alert(scope.resp.RecordId);
}
});
}
}
});
我使用类似的指令
<record-view recordId="{{currentRecordId}}"></record-view>
在我的视图中抛出{{currentRecordId}}就是在证明所设置的值和指令范围是正确的$当record-id属性发生更改时,watch会正确触发,但console.log会证明该值未定义。
我不确定我在这里错过了什么。我不知道这是否重要,但这一指令是在一个单独的指令中使用的。
原来angular不喜欢我像这样调用指令
<record-view recordId="{{currentRecordId}}"></record-view>
相反,它想让我这样称呼它
<record-view record-id="{{currentRecordId}}"></record-view>
我认为规范化可以让我像以前一样使用它,但显然情况并非如此