Угловая ссылка на переменную $ scope из select

0

У меня есть список:

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

Когда я выберу элемент, я должен отобразить список в соответствии со значением выбора, зная, что у меня есть эти списки в моей области:

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

Любые идеи, чтобы заставить его работать?

Я думал:

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

будет работать.

скрипка

Теги:

4 ответа

1
Лучший ответ

Ваша переменная ng-repeat - это i поэтому вы должны поместить {{i}} вместо {{selectedPerson}}.

Вы также должны получить правильный список из области, на $scope.selectedPerson значения $scope.selectedPerson. Попробуй это:

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

скрипка

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 вместо $ 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];

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню