Angularjs 指令无法访问范围数据源
我有这样简单的指令 视图:Angularjs 指令无法访问范围数据源,angularjs,Angularjs,我有这样简单的指令 视图: 指令: angular.module('starweb') .directive('extensionList', function () { return { link: function (scope, element, attrs) { var data = scope[attrs['extensionList']]; console.log(data); },
指令:
angular.module('starweb')
.directive('extensionList', function () {
return {
link: function (scope, element, attrs) {
var data = scope[attrs['extensionList']];
console.log(data);
},
template:"<div>test</div>"
}
});
angular.module('starweb'))
.directive('extensionList',function(){
返回{
链接:函数(范围、元素、属性){
var data=scope[attrs['extensionList']];
控制台日志(数据);
},
模板:“测试”
}
});
控制台日志始终显示未定义?为什么指令无法访问extensionList源数据?
extensionList
属性包含一个绑定表达式,即带有点的属性链,不能使用对象上的括号符号直接访问该属性链。因此,您只需在范围内对其进行eval
。如果它只是作用域上的一个直接属性,那么您尝试在作用域上使用的括号表示法可能会起作用,但在实际情况中,您又降低了一级(前提是作用域上的属性名称和属性名称相同)
尝试:-
范围[attrs['extensionList']]转换为未定义的范围['newReg.checkedDomains']。应该是scope.newReg.checkedDomains或scope[newReg][checkedDomains]谢谢您的帮助。它似乎工作正常,但在我的情况下,它总是返回第一个对象,也许我在某个地方做错了。我会弄明白的。再来一次
angular.module('starweb')
.directive('extensionList', function () {
return {
link: function (scope, element, attrs) {
var data = scope[attrs['extensionList']];
console.log(data);
},
template:"<div>test</div>"
}
});
var data = scope.$eval(attrs.extensionList);
console.log(data);