使用ng-click in指令的模板来调用其他指令

时间:2016-01-27 16:33:29

标签: angularjs angularjs-directive

我想在我的指令模板中使用ng-click,但我不知道如何将另一个指令传递给它。我的代码如下:

template: `
    <ul><li ng-repeat="link in $ctrl.map" ng-click="page-scroll-to={{link[1]}}">{{link[0]}}</li></ul>
`

Secound指令:

app.directive('pageScrollTo', () => {
    return {
        link(scope, el, attrs) {
            const scroll = attrs.pageScrollTo;

            window.scrollTo(0, scroll);
        }
    };
});
显然,它不起作用。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

在你的指令中,只需在元素上放置一个点击处理程序。

模板:

<ul>
    <li ng-repeat="link in $ctrl.map" page-scroll-to="link[1]">
        {{link[0]}}
    </li>
</ul>

指令:

app.directive('pageScrollTo', () => {
    return {
        link: function (scope, elem, attrs) {
            elem.on("click", function clickHandler(e) {
                 var scroll = scope.$eval(attrs.pageScrollTo);
                 window.scrollTo(0, scroll);
            });
        }
    };
});