我有一个清单:
$scope.selectlist = ["list1","list2","list3"];
一旦我选择了一个元素,我应该根据选择值显示列表,知道我的范围内有这些列表:
$scope.list1
$scope.list2
$scope.list3
任何让它运作的想法?
我以为在做:
<div ng-repeat="i in selectedPerson">
{{selectedPerson}}
</div>
会奏效。
答案 0 :(得分:2)
您可以创建一个包含所有列表$scope.allLists
的变量,并在选择列表$scope.selectedList
后,只需使用以下语法$scope.allLists[$scope.selectedList]
。
例如$scope.allLists = { list1: [...], list2: [...], list3: [...] }
和$scope.selectedList = 'list1'
。
答案 1 :(得分:1)
您的ng-repeat变量为i
,因此您应该{{i}}
而不是{{selectedPerson}}
。
您还应该根据$scope.selectedPerson
值从范围中获取正确的列表。试试这个:
$scope.getList = function() {
return $scope[$scope.selectedPerson];
}
答案 2 :(得分: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>
答案 3 :(得分:1)
你只需要为list1,list2,list3使用javascript变量而不是$ scope。
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];