2017-02-06 11 views
0

私はテーブルディレクティブを作成したいと思っています。たとえば、「コントローラにない削除関数を呼び出す」というコールバックを渡す方法を知りたかったので、パラメータを使用してコールバックとして渡したいと思っていましたが、私はそれで頭を打っています。私は "リンク"を介してコールバックを返すことができます私は値を返すことはできませんし、コントローラはできません。Angular、Link、またはControllerディレクティブからコールバックを返しますか?

Imagem when I use link , but don't back values of callback

Image when I use Controller

表示ダッシュボード

<div crud-table options='vm.options' callback='vm.myCallBack(response)'></div> 

コントローラーのダッシュボード

(function() { 

    'use strict'; 

    angular 
     .module('senhalivre') 
     .controller('DashboardMikrotikCtrl', DashboardMikrotikCtrl); 

    DashboardMikrotikCtrl.$inject = []; 

    function DashboardMikrotikCtrl() { 

     var vm = this; 

     vm.myCallBack = myCallBack; 

     vm.options = { 
      enabled : true, 
      msg : 'DashBoard', 
      // Configs etc..... 
     } 

     ////////////////// 

     function myCallBack(response){ 

      console.log('Callback !!! '); 
      console.log(response); 

     } 

    } 

})(); 

あなたは、コールバックを呼び出すときに、パラメータオブジェクトにプロパティ '応答' を提供する必要が指令

(function() { 

    'use strict'; 

    angular 
     .module('senhalivre') 
     .directive('crudTable', crudTable); 

    crudTable.$inject = []; 

    function crudTable() { 

     var directive = { 
      bindToController: true, 
      controller: crudTableCtrl, 
      templateUrl : './views/crud/crudTable.html', 
      controllerAs: 'vm', 
      link: link, 
      restrict: 'EA', 
      scope: { 
       options : '=', 
       callback : '&callback' 
      } 
     }; 

     return directive; 

     //////////////// 

     function link(scope, element, attrs, ctrl) { 

      scope.vm.callback({test : 'something'}); 
      // Work 

     } 

    } 

    crudTableCtrl.$inject = []; 

    function crudTableCtrl() { 

     var vm = this; 

     vm.callback({test : 'something'}); 
     // :( 

    } 

})(); 

答えて

0

function link(scope, element, attrs, ctrl) { 
scope.vm.callback({response: 'some response text'}); 
} 

または

function crudTableCtrl() { 
    this.callback({response: 'something'}); 
} 
関連する問題