javascript
  • angularjs
  • directive
  • 2016-02-26 50 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

    相关问题