[英]Angular directive own scope
我有以下指令
<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
}
}
在任何控制器之外。
我的問題是,我可以在鏈接函數內部將load更改為true,並且該指令會消失嗎?
您是說要通過單擊按鈕等操作來更改值? 如果是這樣的話:
我認為您可以像其他任何值一樣切換該值。 可以傳遞的第四個參數是控制器。
link: function(scope, element, attrs, ctrl) {
scope.loaded = true;
scope.toggle = function() {
scope.loaded = !scope.loaded;
};
}
然后,您可以將scope.toggle
分配給一個按鈕。 還是您只是在運行鏈接功能時更改值?
編輯
這是一個快速的朋克演示了您為angular 1.5寫的意思:
https://plnkr.co/edit/6nj4N6LdGULv7vX4EUqs?p=preview
編輯我的plunkr的2行13-20行:
angular
.module('app')
.controller('PreloadCtrl',PreloadCtrl);
function PreloadCtrl() {
var vm = this;
vm.loaded = false;
}
這基本上定義了一個稱為PreloadCtrl的控制器, 並向其傳遞一個充當控制器的函數。 這與執行此操作相同,這可能是您習慣的操作:
.controller('PreloadCtrl', function () {//Controller stuff})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.