javascript
  • angularjs
  • angularjs-directive
  • angularjs-scope
  • 2017-02-06 8 views -1 likes 
    -1
    Directive: 
    <div ng-show="{{ show }}"> 
         ... 
    </div> 
    
    angular.module('mymodule').directive('mydirective', [ 
        function() { 
        return { 
         scope: { 
          show: '=' 
         }, 
         ... 
        }; 
    }]); 
    
    Parent: 
    <div mydirective show="show" ng-repeat="item in items"> 
    </div> 
    
    controller.js: 
    this.show = false //intially 
    
    function changeVisibility(){ 
        this.show = true; //how to tell the directive about this change? 
    } 
    

    "show"は最初は偽であるが後ではtrueになるスコープ変数です。しかし、このときディレクティブのスコープ変数 "show"は更新されません。親のshow変数が変更されたときに、ディレクティブのshow変数を更新するにはどうすればよいですか?私は$スコープを必要としますか?$時計か何か?親のスコープ変数が変更されたときにディレクティブを更新する方法は?

    +0

    を試してみてください)'ショットを!補間ない見込んでhttp://jimhoskins.com/2012/12/17/angularjs-and-apply.html – spoonscen

    +2

    @spoonscen '$ scope。$ apply()'は* "cure all"ではありません*スコープは角の範囲外で変更されていますが、明らかにそうではありません – charlietfl

    答えて

    0

    ng-show式が

    `$の範囲を与える。$(適用

    ng-show="show" 
    
    +0

    その部分は実際に動作します。私はcontrollerAを持っているので、私はcontroller.showを使用しています。質問が更新されます。 – Prabhu

    +0

    その後、[mcve] – charlietfl

    +0

    を入力して質問を更新しました。 – Prabhu

    関連する問題