Angularjs 如何单击调用ng指令函数

Angularjs 如何单击调用ng指令函数,angularjs,angularjs-directive,angular-material,angular-ui-router,Angularjs,Angularjs Directive,Angular Material,Angular Ui Router,在我的指令中,我有一个html按钮。我想在单击某个函数时调用它。我对angular js不太了解。所以我想在按钮点击时打开一个模式 我想这条路是, 指令中的html按钮->showmodel()函数。此showModal()是一个webservice函数,它使用webservice调用模态 我在html中添加了ng click=“documentManagerButtonCtrl.showDocumentModal()” 但它并没有调用指令函数。有人能解释一下当点击按钮时如何打开一个服务模式吗

在我的指令中,我有一个html按钮。我想在单击某个函数时调用它。我对angular js不太了解。所以我想在按钮点击时打开一个模式

我想这条路是,

指令中的html按钮->showmodel()函数。此showModal()是一个webservice函数,它使用webservice调用模态

我在html中添加了
ng click=“documentManagerButtonCtrl.showDocumentModal()”

但它并没有调用指令函数。有人能解释一下当点击按钮时如何打开一个服务模式吗

<div class="col">
  <a class='btn'
     ng-click="pimDocumentManagerButtonCtrl.showDocumentModal()"
     data-target='demoModal' modal>Create</a>
</div>
改变

controllerAs:'DocumentManagerButtonCtrl'

controllerAs:'vm'

因为你有

var vm=this

之后,您需要将showDocumentModal()函数与

vm.showDocumentModal=showDocumentModal

然后,您可以通过以下方式拨打电话:

ng单击=“vm.showDocumentModal()”

(function () {
'use strict';

angular
    .module('app.directives')
    .directive('documentManagerButton', documentManagerButton);


/* @ngInject */
function documentManagerButton() {
    return {
        restrict: 'E',
        templateUrl: 'directives/document_manager.html',
        scope: {
            datagroupName: "@",
            employeeNumber: "=",
            documentTemplateDetails: "=",
            employeeService: "="
        },
        bindToController: true,
        link: function (scope, element, attrs) {
        },
        controller: documentManagerController,
        controllerAs: 'DocumentManagerButtonCtrl'
    };
}
documentManagerController.$inject = ['webservice', '$q', 'modalHelperService'];
function documentManagerController(webservice, $q) {
    var vm = this;
  
    function showDocumentModal(){
        modalHelperService.showModal(
            'app/document/document_modal.html',
            'documentController',
            'modal'
        );
    }
}

})();