我有一个指令用作表单控件.此伪指令隐藏在模态对话框中,并在用户单击按钮以显示表单时显示.由于此指令连接到某些Web服务,我不希望它初始化,除非用户单击按钮并显示表单(以防止不必要的Web服务调用).所以,我正在寻找的是父控制器触发指令执行一些初始化代码的好方法.这是一个例子:
App.controller('parentCtrl',['$scope',function($scope) { $scope.onButtonClick = function onButtonClick() { // tell directive to init somehow }; }]); App.directive('myDirective',function() { return { restrict: 'E',scope: {},controller: function($scope,myService) { function init() { myService.getData().then(function(value) { //do init stuff }); } } });
假设parentCtrl的模板包含一个标签.