2015-11-04 45 views
0

我是AngularJS的新手,並且存在以下問題:我有兩個選擇框用於填充存儲在外部JSON文件中的數據。我想根據在第一個框中選擇的項目動態填充第二個框。第一個框中的每個項目都有一個關鍵字,稱爲關係。我想使用這個鍵的值作爲動態更新第二個盒子中可用項目的觸發器。根據JSON數據動態更新選擇框與AngularJS

任何人都可以幫助我嗎?我已經嘗試編寫一個函數,但它不起作用。提前Thanx。 這是JSON結構:基於你撥弄

{ 
"filterElements": [ 
    { 
     "parameters": [ 
      { 
       "paraName": "paraOne", 
       "relation": "default" 
      }, 
      { 
       "paraName": "paraTwo", 
       "relation": "default" 
      }, 
    { 
       "paraName": "paraThree", 
       "relation": "defaultshort" 
      } 
     ] 
    }, 
    { 
     "relations": [ 
      { 
       "defaultrelation": 
     [ 
        "equals", 
        "does not equal", 
        "greater than", 
        "less than" 
       ] 
      }, 
      { 
       "defaultshort": 
     [ 
        "equals", 
        "does not equal" 
       ] 
      } 
     ] 
    } 
] 

}

MyFiddle

+0

你嘗試過什麼JS /什麼是您的控制器是什麼樣子? –

回答

0

,你少來引導應用。例如:

<body ng-app="list"> 
... 
</body> 

之後,您需要註冊ListCtrl到現有的應用程序。

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

app.controller('ListCtrl', ListCtrl); 

function ListCtrl($scope, $http) { 
    ... 
} 

這樣做後,你的控制器將被執行,你的請求將被做出,你可以綁定數據到你的視圖。

+0

您好,抱歉,也許解釋不夠清楚。我現在將這些文件上傳到了[Plunker](http://plnkr.co/edit/i3ZCi1r3R8LZuoVebeR2?p=preview),所以你可以真正明白我的意思。我的問題是,我想要填充第二個下拉菜單項,具體取決於第一個下拉菜單中所選項目的JSON數據。例如:如果用戶選擇paraThree,第二個盒子將被填充等於和不等於,因爲paraThree的JSON鍵關係具有在JSON中定義的默認短關係。 – YourReflection

0

我明白了。下面是如果有人有興趣的解決方案:

$scope.change = function (paraSelection) { 
$scope.filteredrelations = []; 
for(var key in $scope.relations){ 
    if(angular.isDefined($scope.relations[key][paraSelection.relation])){ 
    $scope.filteredrelations = $scope.relations[key] paraSelection.relation]; 
     } 
    } 
}; 

完整的工作示例可以在這裏找到: Plunker

相關問題