如何将具有理解表达式的范围变量分配给ng-options

时间:2016-11-30 00:36:50

标签: javascript angularjs

我有一组数据items

$scope.items = [
    {
        "value": 1,
        "text": "1st"
    },
    {
        "value": 2,
        "text": "2nd"
    }
]

我希望能够创建一个选择标记,如:

<select ng-model="currentSelection" ng-options="item.value as item.text for item in items"></select>

这是显示所有items下拉列表的常规方式。

是否可以将"item for item in items"指定为范围变量并将该范围变量分配给ng-options? IE(在控制器中):

$scope.options = "item.value as item.text for item in items";

并且在视野中:

<select ng-model="currentSelection" ng-options="{{options}}"></select>

现在,我对最后一个示例的实现导致选项被加载为空字符串,我能想到的唯一原因是在首先加载ng属性/变量之后加载范围变量。

1 个答案:

答案 0 :(得分:0)

看看这个:

jsFiddle

var app =angular.module('app',[]);
app.controller('Ctrl', function($scope){
$scope.currentSelection = "";
$scope.expression = "item.value as item.text for item in items";
$scope.items = [
    {
        "value": 1,
        "text": "1st"
    },
    {
        "value": 2,
        "text": "2nd"
    }
]
});

这应该有效。其他方法是创建一个指令。