2016-03-31 14 views
1

では適用しないNG-場合はここに私のHTML、中:NG-の場合は、私が更新する必要があるビュー

<div id="shyBoxII" ng-if="robot.robot" ng-class="background"> 
    <div class="row"><i class="fa fa-user-plus"></i></div> 
    <div class="row"><i class="fa fa-book"></i></div> 
    <div class="row"><i class="fa fa-video-camera"></i></div> 
    <div class="row"><i class="fa fa-volume-up"></i></div> 
    </div> 

しかし、私のコントローラでは、私はそれがtrueを取得し、robot.robotをログコンソールとまだ#shyBoxIIはしていません表示されます。何がありますか?

$scope.pinActiveSection = function ($event,section) { 
      var $element = $(".table-hover tr."+section+""); 
      console.log($event,section); 
      if($element.children(":first").hasClass("unlock")){ 
      $(".table-hover tr:not(."+section+")").fadeOut("slow", function() { 
      $(this).remove(); 
      $element.parent().parent().parent().css("top", "10%"); 
      $element.parent().parent().parent().css("padding", "0%"); 
      $scope.activeSection.activeSection = section; 
      $scope.robot.robot = true; 
      console.log($scope.robot.robot); 
      if($scope.activeSection == "I") 
      { 
       $scope.background.push("I"); 
       $scope.background.push("show"); 
      } 
      }); 
      } 
      else{ 
       $.fn.extend({ 
      animateCss: function (animationName) { 
       var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; 
       $(this).addClass('animated ' + animationName).one(animationEnd, function() { 
        $(this).removeClass('animated ' + animationName); 
       }); 
      } 
     }); 
     $element.children(":first").animateCss('bounce'); 
      } 
     }; 

明確にするため、$scope.pinActiveSectionが実行されている、私は$scope.robot.robottrueであることをコンソールログを参照してくださいので、私の見解では更新されない理由を私は理解していません。 $scope.robot.robotifブロックにプッシュすると動作しますが、私はfadeOutコールバックの一部としてそれを使用します。助けてください!

編集:pinActiveSelectionを2回連続して実行すると、2回目の実行後に#shyBoxIIが表示されます。はじめて何がうまくいかないかについての手掛かりはありますか?

+0

を、このコードを追加してください、あなたはNGリピート中または通常はこのコードを使用していますか? –

+0

@ShailendraSinghDeol通常 –

答えて

1

関数の最後に「pinActiveSection」

$scope.$apply();それとも$scope.$digest();

0

ng-showを使ってみましたか?

<div id="shyBoxII" ng-show="robot.robot" ng-class="background"></div> 
+0

同じ問題! :( –

+0

はそれが何かを印刷していますか? はあなたのコントローラーがあなたのhtmlに定義されていない あなたのhtml {{robot.robot}}でこれをやってみては?

? –

+0

@FrederickMfinanga {{robot.robot}}プリント真の –

0

問題は何$digest()が新しい値で古い値を比較するためにトリガされませんので、角度が$scope.robot.robotの値が最初に更新されて知らないことかもしれません。使用しよう:

$timeout (function() { 
    $scope.robot.robot = true; 
}) 

それとも$scope.$evalAsync()の代わり$timeout()を使用しています。

関連する問題