我有以下指令
<preload loaded="false" ng-if="!loaded"></preload>
return {
restrict: 'E',
templateUrl: 'template.html',
scope: {
loaded: '='
},
link: function(scope, element, attrs) {
//scope.loaded = true
//hide directive
}
}
在任何控制器之外。
我的问题是,我可以在链接函数中将加载更改为true并且指令会消失吗?
答案 0 :(得分:1)
您的意思是通过单击按钮等操作来更改值吗?如果是这样的话:
我认为您可以像对待任何其他值一样切换该值。可以传递的第四个参数是控制器。
link: function(scope, element, attrs, ctrl) {
scope.loaded = true;
scope.toggle = function() {
scope.loaded = !scope.loaded;
};
}
然后您可以将scope.toggle
分配给按钮。或者你的意思是只在运行链接功能时更改值?
修改强>
这是一个快速的傻瓜,展示你为角1.5写的意思:
https://plnkr.co/edit/6nj4N6LdGULv7vX4EUqs?p=preview
编辑2 我的傻瓜的第13-20行:
angular
.module('app')
.controller('PreloadCtrl',PreloadCtrl);
function PreloadCtrl() {
var vm = this;
vm.loaded = false;
}
这基本上定义了一个名为 PreloadCtrl 的控制器,并向其传递一个充当控制器的函数。这与执行此操作相同,这可能是您习惯的:
.controller('PreloadCtrl', function () {//Controller stuff})