2017-08-01 12 views
0

$ scope.type [i](データベースからのjson配列)でこのケースを生成したいと思いますか?スコープでスイッチケースを生成する方法

$scope.type = [{nomcarac: "phone"}, {nomcarac: "shoes"}]; 
 

 
    $scope.getValuesList = function(item) { 
 
    switch (item.type){ 
 
     case 'phone': 
 
     item.valuelist = angular.copy($scope.phonelist); 
 
     break; 
 
     case 'shoes': 
 
     item.valuelist = angular.copy($scope.shoeslist); 
 
     break; 
 
     default: 
 
     item.valuelist = []; 
 
     break; 
 
    } 
 
    };

+0

それはスイッチ(item.nomcarac)でなければなりません{またはその項目 – Vivz

答えて

0

あなたはそれがあなたのケースにマッチします切り替えるには、正しいオブジェクトの値を渡す必要があります。以下の例では、電話機や靴を入力から受け渡すと、スイッチがトリガーされます。あなたがあれば

item.valuelist = angular.copy($scope[item.type + 'list']); 

あなたが後でnullをチェックすることができます。

var myApp = angular.module('myApp', []); 
 
    myApp.controller('ctrl', ['$scope', function ($scope) { 
 
    $scope.type = [{nomcarac: "phone"}, {nomcarac: "shoes"}]; 
 

 
    $scope.getValuesList = function(index) { 
 
    switch ($scope.type[index].nomcarac){ 
 
    
 
     case $scope.type[index].nomcarac: 
 
     $scope.valuelist = $scope.type[index].nomcarac +" " + "worked"; 
 
     console.log($scope.valuelist); 
 
     break; 
 
     default: 
 
     $scope.valuelist = "Nothing worked"; 
 
     break; 
 
    } 
 
    }; 
 
    for(var i=0;i<$scope.type.length;i++) 
 
    $scope.getValuesList(i); 
 
    }]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="ctrl"> 
 
</div>

+0

からnomracに評価何でも私はあなたを考えます理解できませんでした。ケース名を としたいと思います。 for var [i] i ++ case '$ scope.type [i] .nomcarac' これを行う方法がわかりません – jean

+0

@jean上記と同様のものをお探しですか? – Vivz

0

$scope変数は普通のjavascriptの変数のように、あなたはこのような変数を使用することにより、サブレベルにアクセスすることができます間違った文字列が心配です。

0

は、私はそれがあなたの期待あたりとして働くことを願っています:

var myApp = angular.module('myApp',[]); 
 

 
myApp.controller('MyCtrl', function($scope) { 
 
    $scope.type = [{nomcarac: "phone"}, {nomcarac: "shoes"}]; 
 

 
    $scope.getValuesList = function(item) { 
 
     switch (item.nomcarac) { 
 
     case item.nomcarac: 
 
      item.valuelist = angular.copy($scope.phonelist); 
 
      break; 
 
     default: 
 
      item.valuelist = []; 
 
      break; 
 
     } 
 
    }; 
 
    
 
    for (var i in $scope.type) { 
 
    \t $scope.getValuesList($scope.type[i]); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-controller="MyCtrl" ng-app="myApp"> 
 
</div>

関連する問題