在指令父作用域上调用函数,并使用指令作用域参数。
在指令父作用域上调用函数,并使用指令作用域参数。
我正在开发一个指令,根据其模板中定义的点击事件(ng-click)来显示和隐藏其内容。在一些使用该指令的视图中,我希望能够知道该指令当前是显示还是隐藏其内容,以便能够响应DOM的变化。该指令具有隔离作用域,我正试图在指令被"切换"时通知父作用域。我尝试通过在指令中传递一个回调函数来实现这个目标,在使用该指令的地方可以调用该函数,以便在指令的状态发生变化时(即隐藏或显示)进行相应的操作。
但是,由于指令的状态(隐藏或显示)存储在指令的隔离作用域中,并且是在ng-click之后确定的,因此我需要从指令内部调用父作用域的函数,而不是从视图中调用。
通过一个例子来演示将更容易理解。这里有一个示例链接,演示了我想要做的事情:https://plnkr.co/edit/hHwwxjssOKiphTSO1VIS?p=info
var app = angular.module('main-module',[]) app.controller('MainController', function($scope){ $scope.myValue = 'test value'; $scope.parentToggle = function(value){ $scope.myValue = value; }; }); app.directive('toggle', function(){ return { restrict: 'A', template: 'Click Me', replace: true, scope: { OnToggle: '&' }, link: function($scope, elem, attrs, controller) { $scope.toggleValue = false; $scope.toggle = function () { $scope.toggleValue = !$scope.toggleValue; $scope.OnToggle($scope.toggleValue) }; } }; });
我对Angular还比较新手。首先,这样做是不是一个不好的主意?我应该使用服务还是其他东西来传递函数引用?
谢谢!