角度传递参数到指令

时间:2016-02-09 17:55:05

标签: javascript angularjs

我有以下HTML,运行以下指令。我需要将loop参数传递给指令模板。但由于某种原因,它不起作用。为什么呢?

HTML

<ul>
    <list-element loop></list-element>
</ul>

angular.module('myApp', []).directive('listElement', function(){
    return {
        templateUrl: 'list-element.html',
        scope: {},
        link: {
            scope.loop : vm.list
        }
    };
});

TEMPLATE

<li ng-repeat="(slug, label) in loop">
    <strong>{{ slug }}</strong> - {{ label }}
</li>

3 个答案:

答案 0 :(得分:0)

我认为你想要的是:

HTML:

<ul>
    <list-element loop="vm.list"></list-element>
</ul>

角:

angular.module('myApp', []).directive('listElement', function(){
    return {
        templateUrl: 'list-element.html',
        scope: {
            loop: '='
        }
    };
});

我在猜测循环=&#34; vm.list&#34;因为我不知道其余的代码。但我们的想法是,您希望将对象作为名为&#39; loop&#39;。

的属性传递

答案 1 :(得分:0)

隔离范围双向绑定如下所示:

scope:{
    loop:'='
}

您可以浏览角度开发人员指南here

答案 2 :(得分:0)

试试这个

<强> HTML

<ul>
   <list-element loop ></list-element>
</ul>

角度指令

angular.module('myApp', []).directive('listElement', function(){
return {
    templateUrl: 'list-element.html',
    scope: {
    },
    link: function (scope) {
        scope.loop = vm.list
    }
};
});