2016-04-19 73 views
0

$範圍變量我有一個列表:角度獲取參考從選擇

$scope.selectlist = ["list1","list2","list3"]; 

一旦我選擇一個元素,我要根據選擇值知道我在我的範圍,這些列表顯示列表:

$scope.list1 
$scope.list2 
$scope.list3 

任何想法,使其工作?

我想這樣做的:

<div ng-repeat="i in selectedPerson"> 
     {{selectedPerson}} 
    </div> 

會工作。

Fiddle

回答

1

你的ng-repeat變量是i所以你應該把{{i}}而不是{{selectedPerson}}

您還應該根據$scope.selectedPerson值從範圍中獲得適當的清單。試試這個:

$scope.getList = function() { return $scope[$scope.selectedPerson]; }

Fiddle

2

您可以創建一個包含所有列表$scope.allLists變量並選擇$scope.selectedList清單後,只需要使用下面的語法$scope.allLists[$scope.selectedList]

例如$scope.allLists = { list1: [...], list2: [...], list3: [...] }$scope.selectedList = 'list1'

1

模板改成這樣:

<div ng-app="myapp" ng-controller="FirstCtrl"> 
     <select ng-options="p for p in selectlist" ng-model="selectedPerson"></select> 

     <div ng-repeat="i in this[selectedPerson]"> 
      {{i}} 
     </div> 
</div> 
1

你只需要使用JavaScript變量,而不是$範圍爲您的列表1,列表2,項目list3。

var list1 = [1,2,3,4,5]; 

var list2 = ['a','b','c','d','e','f','g']; 

var list3 = ["hi","bye","whatever"]; 

$scope.selectlist = [list1,list2,list3]; 

http://jsfiddle.net/81t6cbjw/70/