1
スコープを分離してスコープを共有する3つのディレクティブがあり、最も内側のディレクティブの間で関数を渡したいと思います。外側と中間はスコープを分離し、内側を持つ中間はスコープを共有します。どんな提案?アングルディレクティブで分離スコープとスコープを渡す関数引数を渡す
以下のようにコントローラの機能を渡します。私のコントローラで
<outer on-edit="helloWorld" ng-model="model" ng-repeat="items in items.objects" ></outer>
:
$scope.helloWorld = function(){ alert('Hello world'); }
マイディレクティブ:
angular.module('myApp') .directive('outer', function() { return { restrict: 'E', replace: true, scope: { item: "=ngModel", onEdit: '&' }, template: '<div><middle on-edit='onEdit'></middle></div>', controller : function($scope){ $scope.edit = function(){ $scope.onEdit()(); } } }; }) .directive('middle', function() { return { restrict: 'E', replace: true, scope: { item : '=ngModel', onEdit : '&' }, templateUrl: '<div><inner on-edit='onEdit'></inner></div>' }; }) .directive('inner', function() { return { restrict: 'E', template: '<div><a ng-click='edit()'>Edit</a></div>' }; })
そして、これが動作しない、任意のアイデア?
おかげ
関数のコードを内部ディレクティブから消去しましたが、それでも機能しません。 – Rosa
それは動作します!これは、ng-click関数の名前に問題がありました...あなたはedit()をonEdit()に置き換える必要があります。 – Rosa