【发布时间】:2015-01-10 23:55:16
【问题描述】:
我有一个自定义指令,有时会使用 ng-hide 隐藏:
<my-custom-directive ng-show="vm.showBox"
value="vm.objects"
></my-custom-directive>
我的自定义指令代码中的一个 sn-p:
function myCustomDirective() {
var directive = {
controller: controller,
controllerAs: 'vm',
///...
scope: {
value: '='
}
};
return directive;
function controller($scope) {
var vm = this;
///...
$scope.value.dates = $scope.value.dates || [];
}
}
问题:即使不应该加载/显示指令(因为vm.showBox 为假),自定义指令的控制器代码也会运行,在这种情况下它会失败,因为$scope.value 没有通过(它是那里未定义)。
如果指令被隐藏,为什么指令的控制器代码仍然运行?我想假设如果使用该指令,它会被赋予有效的参数,而无需检查是否定义了$scope.value。
【问题讨论】:
标签: angularjs angularjs-scope angular-directive