簡體   English   中英

Angular指令自己的范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM