我有像这样的简单指令
查看:
<div ng-if="newReg.checkedDomains.length>0">
<div extension-list="newReg.checkedDomains"></div>
</div>
指令:
angular.module('starweb')
.directive('extensionList', function () {
return {
link: function (scope, element, attrs) {
var data = scope[attrs['extensionList']];
console.log(data);
},
template:"<div>test</div>"
}
});
控制台日志总是显示Undefined?为什么指令无法访问extensionList源数据?
答案 0 :(得分:0)
extensionList
属性包含一个绑定表达式,属性链带有一个点,不能用对象上的括号表示法直接访问。所以你只需要在范围内eval
。如果它只是一个直接在作用域上的属性,那么你试图在作用域上做的括号表示法会有效,但在你的实际情况中,你是一个更低级别(提供属性的名称和作用域上的属性名称)是一样的。)
尝试: -
var data = scope.$eval(attrs.extensionList);
console.log(data);
<强> Demo 强>