2017-10-17 15 views
0

これは私の元のプランナーデモhttp://plnkr.co/edit/9UBZ9E4uxAo1TXXghm1T?p=previewです。ループを反復する

divの場合(ng-if = "show == 4")リストが空の場合、特定のdivを非表示にしたいのですが、現在各divが5秒間隔で表示されていますか? $ intervalに基づいて各divを表示する場合は、detailsList==0の場合はdivを隠すようにjsコードを変更する必要があります。

JSコード:上記と

$scope.start = 1 ; // 1 to start and 0 to stop 

更新コントローラログイン後述のよう

app.controller('MainController', function($scope, $rootScope, $interval) { 
    $scope.show = 1; 
    $rootScope.detailsList = 0; 

    $interval(function() { 

    if ($scope.show === 4) { 
     if ($rootScope.detailsList < 2) { 
     ++$rootScope.detailsList; 
     } else { 
     $rootScope.detailsList = 0; 
     $scope.show = 1; 
     } 
    } else if ($scope.show < 4) { 
     ++$scope.show; 
    } else { 
     $scope.show = 1; 
    } 
    }, 5000, 0); 

}); 
+0

あなたは期待した結果を達成しようとしていますか? –

+0

@divyareddy - デモを見つけてくださいhttp://plnkr.co/edit/9UBZ9E4uxAo1TXXghm1T?p=preview 上記のplnkrデモで、$ scope.detailsの長さはゼロです。$ scope.detailsの長さのときにdiv4をロードしたくありませんゼロである。 ng-hideが使用されている場合でも、$ divを読み込んで各divをロードするのでdivが読み込まれます。 – user8727958

+0

あなたはあなたの詳細の長さがゼロまたはdetailsList == 0のときdivを隠したいですか? – vertika

答えて

0

いずれかを使用開始変数が開始例えば$間隔を制御する可変

app.controller('MainController', function($scope,$rootScope, $interval) { 
    $scope.show = 1; 
    $rootScope.detailsList = 0; 
    $scope.start = 1; 

    var intervalPromise = $interval(function() { 

     if($scope.start ==1){ 
     if ($scope.show === 4) { 
      if ($rootScope.detailsList < 2) { 
      ++$rootScope.detailsList; 
      } else { 
      $rootScope.detailsList = 0; 
      $scope.show = 1; 
      $scope.start =0; 
      } 
     } 
     else if ($scope.show < 4) { 
      ++$scope.show; 
     } else { 
      $scope.show = 1; 

       } 

} 
     }, 1000, 0); 




}); 
+0

提案されたコードが動作していないようです。plsが更新されましたhttp://plnkr.co/edit/mZRvsFNJY3DRcUhRQrA8?p=preview。 空のdivを最初の間隔で読み込んでいます($ scope.detailsList1の長さがゼロのときに3333333が表示されてから5秒後に空白のページが表示されます)。@ divya reddy – user8727958

+0

@ user8727958、詳細の長さ参照用codepenを見つけてください - https://codepen.io/divyar34/pen/WXRNeV –

0

まあ!あなたはshow==4の状態であなたのdivを表示しません。 代わりのdivタグを表示するために別の変数を取るには:

Coontroller:

私は新しい変数showDivFourを追加して、コントローラーを変更した

app.controller('MainController', function($scope,$rootScope, $interval) { 
$scope.show = 1; 
$rootScope.detailsList = 0; 
$scope.showDivfour = false; 

$interval(function() { 
    if ($scope.show === 4) { 

     if ($rootScope.detailsList < 2) { 
     ++$rootScope.detailsList; 
     } else { 
     $rootScope.detailsList = 0; 
     $scope.show = 1; 
     } 
     if($rootScope.detailsList!=0){ 
     $scope.showDivenfour = true; 
     }else{ 
     $scope.showDivenfour = false; 
     } 
    } 
    else if ($scope.show < 4) { 
     ++$scope.show; 
    } else { 
     $scope.show = 1; 
    } 

    }, 5000, 0); 



}); 

あなたのhtml:

変更:

<div ng-if="showDivfour" ng-controller="detailsController" > 

    <div > 
     <h1> {{details[detailsList].name}} </h1> 

    </div> 
    </div> 
+0

更新コードhttp://plnkr.co/edit/qDcJ51CunMkWLZj5en9c?p=previewをご覧ください。最初にdivを作成し、次に条件をチェックします。if($ scope.show <4){++ $ scope.show;} – user8727958