2016-09-17 14 views
0

にディレクティブからイベントを処理I持っている(下部)AngularJSディレクティブ以下のリンクsaveClick()がクリックされた場合に警告ウィンドウが表示されなければならない:AngularJSは、コントローラ

<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>'; 
      ... 
+0

ので、あなたは 'コントローラを呼び出したいです'f 「指令」からの統一?この[フィドル](http://jsfiddle.net/u748hLvn/4/)を見てください。 [最小限の完全かつ検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)を参照してください。 – Paritosh

答えて

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

関連する問題