Я новичок в угловом и не могу понять, как вызвать функцию-шаблон из шаблона. У меня есть некоторые возможности, которые будут повторно использоваться в приложении, и я решил бы, что я просто сделаю директиву со всей необходимой функцией, которая может быть легко доступна для разных модулей. Во время поиска ответов я наткнулся на этот пост: how-to-call-a-method-defined-in-an-angularjs-directive , который кажется хорошим решением. Однако я не могу понять, почему мой директивный метод showPolicy() не вызывается.Функция определения углового вызова из шаблона
// контроллер:
(function(){
'use strict';
angular.module('releaseAppsModule')
.controller('releaseAppsController', releaseAppsController);
releaseAppsController.$inject = ['$rootScope',
'storageFactory',
'releaseAppsFactory',
'$modal',
'$translate',
'getIconFactory',
'$scope',
'$filter'];
function releaseAppsController($rootScope, storageFactory, releaseAppsFactory, $modal, $translate, getIconFactory, $scope, $filter) {
var vm = this;
vm.policyControl = {};
...
// Шаблон контроллера:
<tr ng-repeat="policyRelease in regionRelease.policyReleases | orderBy:vm.orderByField:vm.reverseSort" ng-if="policyRelease.status == 'NEW' || policyRelease.status == 'SCHEDULED'">
<td>
<policy control="vm.policyControl" release-item="policyRelease" class="release-apps-app-btn app-release-data"></policy>
</td>
// директива:
(function(){
'use strict';
angular.module('myApp')
.directive('policy', policy)
function policy() {
var directive = {
restrict: 'E',
link: link,
replace: true,
scope: {
releaseItem: '=',
control: '='
},
template: '<a ng-click="vm.policyControl.showPolicy({releaseItem: releaseItem});">{{ releaseItem.policy.name }}</a>'
};
return directive;
function link(scope, el, attr) {
scope.internalControl = scope.control || {};
scope.internalControl.showPolicy = function (releaseData) {
...
} // showPolicy
scope.internalControl.showPolicyModal = function(response, releaseData) {
...
} // showPolicyModal
} // link
} // policy
})();
Я думал, что пробовал это, и он не работал, но, похоже, сейчас, спасибо. – neridaj