指令无法访问范围数据源

时间:2014-10-04 03:23:45

标签: angularjs

我有像这样的简单指令

查看:

<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源数据?

1 个答案:

答案 0 :(得分:0)

extensionList属性包含一个绑定表达式,属性链带有一个点,不能用对象上的括号表示法直接访问。所以你只需要在范围内eval。如果它只是一个直接在作用域上的属性,那么你试图在作用域上做的括号表示法会有效,但在你的实际情况中,你是一个更低级别(提供属性的名称和作用域上的属性名称)是一样的。)

尝试: -

 var data = scope.$eval(attrs.extensionList);
 console.log(data);

<强> Demo