javascript
  • angularjs
  • directive
  • 2016-02-26 112 views 0 likes 
    0

    我有以下指令角指令自己的範圍

    <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 
          } 
    
         } 
    

    以外的任何控制器。

    我的問題是,我可以改變加載爲真正的鏈接功能和指令將消失?

    回答

    1

    你的意思是通過點擊按鈕等操作來改變數值嗎?如果是這樣的話:

    我認爲你可以用與其他任何值相同的方式切換該值。可以傳遞的第四個參數是控制器。

    link: function(scope, element, attrs, ctrl) { 
        scope.loaded = true; 
        scope.toggle = function() { 
        scope.loaded = !scope.loaded; 
        }; 
    } 
    

    然後你就可以分配scope.toggle到一個按鈕。或者你的意思是在鏈接功能運行時改變數值?

    編輯

    這裏有一個快速plunkr展示你的意思的角度寫的1.5:

    https://plnkr.co/edit/6nj4N6LdGULv7vX4EUqs?p=preview

    EDIT 2條 線我plunkr 13-20:

    angular 
        .module('app') 
        .controller('PreloadCtrl',PreloadCtrl); 
    
        function PreloadCtrl() { 
        var vm = this; 
        vm.loaded = false; 
        } 
    

    這個基本盟友定義了一個名爲PreloadCtrl的控制器並將其作爲控制器傳遞給它。這是一樣的這樣做,這可能是你使用的是什麼:

    .controller('PreloadCtrl', function() {//Controller stuff}) 
    
    +0

    不,我的意思是我的指令,它的控制器之外,我怎麼能如果NG-本身使用? – Hiero

    +0

    和link:function(){// make hide = true} – Hiero

    +0

    @Hiero指令總是在控制器之外。所以你的意思是鏈接屬性控制指令是否出現呢? – Katana24

    相關問題