У меня есть список:
$scope.selectlist = ["list1","list2","list3"];
Когда я выберу элемент, я должен отобразить список в соответствии со значением выбора, зная, что у меня есть эти списки в моей области:
$scope.list1
$scope.list2
$scope.list3
Любые идеи, чтобы заставить его работать?
Я думал:
<div ng-repeat="i in selectedPerson">
{{selectedPerson}}
</div>
будет работать.
Ваша переменная ng-repeat - это i
поэтому вы должны поместить {{i}}
вместо {{selectedPerson}}
.
Вы также должны получить правильный список из области, на $scope.selectedPerson
значения $scope.selectedPerson
. Попробуй это:
$scope.getList = function() { return $scope[$scope.selectedPerson]; }
Вы можете создать переменную, которая содержит все списки $scope.allLists
и после выбора списка $scope.selectedList
, просто используйте следующий синтаксис $scope.allLists[$scope.selectedList]
.
Например $scope.allLists = { list1: [...], list2: [...], list3: [...] }
и $scope.selectedList = 'list1'
.
Измените шаблон следующим образом:
<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>
Вам просто нужно использовать переменную javascript вместо $ scope для вашего списка1, list2, 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];