Angular从select中引用$ scope变量

时间:2016-04-19 13:30:34

标签: angularjs

我有一个清单:

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

一旦我选择了一个元素,我应该根据选择值显示列表,知道我的范围内有这些列表:

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

任何让它运作的想法?

我以为在做:

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

会奏效。

Fiddle

4 个答案:

答案 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]; }

Fiddle

答案 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];

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