2016-05-18 11 views
0

私はcontroller.jsに配列を持っています。私は、ユーザーが入力テキストの値を挿入する必要がありますし、右の場合は1つのことを示し、別の場合は別のものを表示します。私は複数のインスタンスを持っています、そして、私はng-switchとする予定でしたが、変数スコープの値を私に教えてはいけません。どうすればそれを解決できますか?AngularJS ng-switchまたはそれに類似した動的値での作業

index.htmlを

<body ng-app="formAdictos"> 
    <div ng-controller="MyController"> 
    <div ng-repeat="list in lista"></div> 
    <div ng-switch on="lis"> 
     <input type="text" ng-model="lis"> 
     <div ng-switch-when="{{lista[0]}}">S</div> 
     <div ng-switch-when={{lista[1]}}>Hola</div> 
     <div ng-switch-default>Texto para cuando no es ni A ni B</div> 
    </div> 
    </div> 
</body> 

controller.js

function MyController($scope, $http) { 
    $scope.items = []; 
    $scope.lista = []; 

    $http({method : 'GET',url : 'https://api.parse.com/1/classes/cupon', 
    headers: { 'X-Parse-Application-Id':'XXX', 
    'X-Parse-REST-API-Key':'XXX'}}) 
    .success(function(data, status) { 
     for(var i = 0; i < data.results.length; i++){ 
      cupo = data.results[i].cupon50; 
      $scope.lista[i] = cupo; 
     } 
     console.log($scope.lista); 
    }) 
    .error(function(data, status) { 
     alert("Error"); 
    }); 
} 
angular.module('formAdictos').controller('MyController', MyController);` 

リスト配列は3つの値が含まれています。

リスタ= [、「HI」、「良い」「悪い」]これは、httpさて、私は実際にスイッチディレクティブをしませんし、私が来て動作するように見えていません

+0

$ http呼び出しから返されたJSONを含めるように質問を編集してください。 –

+0

$ scope.lista = ["hi"、 "good"、 "bad"]これは結果です –

答えて

1

を呼び出すに結果であります何かと一緒に。

function MyController($scope, $http) { 
 
    $scope.items = []; 
 
    $scope.lista = []; 
 
    $scope.lis = ""; 
 
    $scope.lista = [{key:"hi", value:"S"}, {key:"good", value:"Hola"}] ; 
 
    $scope.isInList = false; 
 
    $scope.checkIsInList = function(lis){ 
 
    $scope.isInList = false; 
 
    for(var i =0; i < $scope.lista.length; i++){ 
 
     if($scope.lista[i].key === lis){ 
 
      $scope.isInList = true; 
 
      return; 
 
     } 
 
    } 
 
    } 
 
} 
 
angular.module('formAdictos', []).controller('MyController', MyController);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="formAdictos"> 
 
    <div ng-controller="MyController"> 
 
     <input type="text" ng-model="lis" ng-change="checkIsInList(lis)"> 
 
     <div ng-repeat="item in lista"> 
 
      <div ng-if="item.key == lis"><span ng-bind="item.value"></span></div> 
 
    </div> 
 
    <div ng-if="isInList==false">Texto para cuando no es ni A ni B</div> 
 
    lis : {{lis}} 
 
    </div> 
 
    
 
</div>

意図したようにこの作品は、私がブール値を使用して、デフォルトを管理する必要があります。

しかし、わかりましたが、私のように動作させるには、サーバのリストとオブジェクトのリストの値が一致するリストをマージする必要があります。もう1つの方法は、一致が同じインデックスを持つ2つの配列を持つことです$index提供:ng-repeat

+0

私の友人に感謝します...私が欲したものに似ています。私はそれを使うことができた。 –

関連する問題