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);