如何在angularjs指令中生成事件监听器函数?

时间:2016-07-18 21:01:09

标签: angularjs

如何在angularjs指令中生成事件监听器函数?

对于这样的事情:

指令:

app.directive('myDirective', () => {
    return {
        scope: {
            myDict: '=',
        },
        templateUrl: 'directives/my-directive',
    };
});

HTML:

<!-- my-directive.html -->

<li ng-repeat="(key, value) in myDict">
    <!-- Will not work -->
    <a onclick="function_written_in_frontend({{key}})">{{value}}</a>
</li>

使用它:

<my-directive myDict="{'a': 1, 'b': 2, 'c': 3}"></my-directive>

我希望它可能产生:

<li>
    <a onclick="function_written_in_frontend('a')">1</a>
    <a onclick="function_written_in_frontend('b')">2</a>
    <a onclick="function_written_in_frontend('c')">3</a>
</li>

但我不能。 ng-click可能不是解决方案。

提前谢谢。

更新

如果我像这样更新了我的指令:

app.directive('myDirective', () => {
    return {
        scope: {
            myDict: '=',
        },
        controller: function ($scope, $element) {
            $scope.function_written_in_frontend = function(mykey) {
                console.log(mykey);
            }
        },
        templateUrl: 'directives/my-directive',
    };
});

它给了我:

{{key}}
{{key}}
{{key}}
{{key}}

1 个答案:

答案 0 :(得分:0)

尝试ng-click而不是onclick

<a ng-click="function_written_in_frontend(key)">{{value}}</a>