cav*_*a23 10 javascript angularjs angularjs-directive
我有一个用作表单控件的指令.该指令隐藏在模式对话框中,并在用户单击按钮以显示表单时显示.由于此指令连接到某些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 });
}
}
});
Run Code Online (Sandbox Code Playgroud)
假设parentCtrl的模板包含一个标记.
Gab*_*abe 12
在一个标记元素ng-if将阻止指令在需要之前初始化.(scope.loadModal默认情况下应为false)
<my-directive ng-if='loadModal'></mydirective>
Run Code Online (Sandbox Code Playgroud)
注意:scope.loadModal = false显示指令一次后设置将从DOM中卸载指令.将其设置为true将重新加载指令,从而产生另一个http请求.
| 归档时间: |
|
| 查看次数: |
16689 次 |
| 最近记录: |