AngularJS обрабатывает событие из директивы в контроллере

0

У меня есть следующая директива AngularJS (внизу), и если щелкнуть ссылку saveClick(), появится окно предупреждения:

<span save-click="alert('hallo ich binssdsd')" data-ng-dropdown-multiselect options="vm.translatedRoles" selected-model="vm.selectedRoles" external-id-prop="label"></span>

но ничего не происходит. Кто-нибудь знает, что я делаю неправильно?

directiveModule.directive('ngDropdownMultiselect', ['$filter', '$document', '$compile', '$parse', '$rootScope',
function ($filter, $document, $compile, $parse, $rootScope) {

    return {
        restrict: 'AE',
        scope: {
            selectedModel: '=',
            options: '=',
            extraSettings: '=',
            events: '=',
            searchFilter: '=?',
            translationTexts: '=',
            groupBy: '@',
            saveClick: '&'
        },
        template: function (element, attrs) {
            var checkboxes = attrs.checkboxes ? true : false;
            var groups = attrs.groupBy ? true : false;

            var template = '<div class="multiselect-parent btn-group dropdown-multiselect">';
            template += '<li><a data-ng-click="saveClick()"><span class="glyphicon glyphicon-floppy-disk"></span>  {{texts.save}}</a>';
            ...
Теги:
angular-directive

1 ответ

0
Лучший ответ

Вам нужно будет добавить функцию ссылки в объект определения директивы для работы оповещения.

Ниже приведен пример кода:

directive.js

var app = angular.module("myApp", [])

app.directive('testAlert',function() {
  return {
     restrict: 'E',
     template: '<button ng-click="alertClick()">Test</button>',
     link: function (scope) {
        scope.alertClick = function () {
        alert('Welcome!');
     };
   }
  }
});

index.html

<div ng-app="myApp">
   <test-alert></test-alert>
</div>

WorkingExample

Ещё вопросы

Сообщество Overcoder
Наверх
Меню