从指令模板调用es6样式的控制器类方法

时间:2017-03-25 11:55:00

标签: javascript angularjs angularjs-directive

我想从指令模板中调用一个带有ES6样式的控制器类的方法,如下所示:

我的指示:

import angular from 'angular';

function dpGrid() {
    return {
        restrict: 'E',
        scope: {
            options: '='
        },
        template: require('./grid.directive.html')
    }
}

export default angular.module('directives.dpGrid', [])
    .directive('dpGrid', dpGrid)
    .name;

我的指令模板的一部分:

<a class="btn btn-info" ng-click="delete(item)">delete</a>

我希望从指令模板调用此控制器的delete()方法:

export default class userController {

    constructor($scope) {
        this.$scope=$scope;    
    }

    delete(item){

        console.log("item : ",item);
    }


}
userController.$inject = ['$scope'];

我不能在这样的指令中使用controller attrib:

controller:'userController'

因为我想将此指令与多控制器一起使用

1 个答案:

答案 0 :(得分:0)

我认为你应该从你的控制器调用你的指令。 指令可以在控制器中使用,也可以通过属性直接在DOM中使用。

我不明白你为什么要在指令中调用控制器方法。 为DOM操作制定了一个指令。