angularjs代码:
app.directive('test', function(){
return {
restrict: 'A',
scope: {
myId: '@'
},
link: function(scope) {
alert(scope.myId);
}
}
});
您可以看到指令中有scope: { myId: '@' }
。
和html代码:
<div test my-id='123'></div>
您可以看到我定义了my-id='123'
。
我希望该指令会提醒123
,但它会提醒undefined
。我的错误在哪里?
PS:这是一个现场演示:http://plnkr.co/edit/sL69NqWC70Qfwav5feP2?p=preview
答案 0 :(得分:11)
您需要$observe
个属性(如http://docs.angularjs.org/guide/directive的“属性”部分所述)才能获得插值属性的正确值。
这是一个有效的插件:http://plnkr.co/edit/NtIHmdoO7IAEwE74ifB5?p=preview
这基本上与angularjs : logging scope property in directive link function displays undefined重复。还应该注意的是,最近合并了PR https://github.com/angular/angular.js/pull/1555,并且您的plunker应该在AngularJS的未来版本中不使用$observe
而工作。
-
有问题的演示版采用最新版本:1.1.3,您可以尝试(并将angularjs url更改为1.1.3)。