我正在创建一个简单的指令但是我一开始就陷入困境。我的问题是我无法从post函数中的范围读取属性。 Here是我的代码:
<div mod type="{{subnet.isDynamic | type }}"></div>
networkInterfaces.directive('mod', function () {
return {
scope: {
type: '@'
},
link: function (scope, iElement, iAttrs, controller) {
console.log(scope.type);
if (scope.type == "Static") {
iElement.css('background', 'blue');
}
if (scope.type == "Dynamic") {
iElement.css('background', 'green');
}
}
}
});
答案 0 :(得分:1)
你的范围属性确实是错误的,你在这里不需要它。
这里有一个工作人员:http://plnkr.co/edit/ezbzad?p=preview
请参阅文档以了解指令中的范围属性:http://docs.angularjs.org/guide/directive
但如果你真的想用它那么做:
app.directive("mod", function(){
return {
scope: {
value: "@value"
},
link: function(scope, element, attrs){
console.log(scope.value);
}
}
});
带有{}的scope属性创建一个新的隔离范围,因此您无法访问您的值。 添加值:“@ value”范围绑定到value属性,但请注意语法是javascript对象语法:
value : "@value"
而非value = "@value"
!!!
哦,最后一件事:如果你的指令是mod
...你的div 你的属性是 mod
不 {{ 1}}。