将Angular.js与多个html选择字段一起使用,ng-repeat(和ng-model)

时间:2015-11-16 16:42:16

标签: angularjs angularjs-ng-repeat html-select angular-ngmodel

我正在尝试使用带有多个html选择字段的angularjs,并且我想将所有选定的元素存储在一个数组中。

可能代码如下:

<body ng-app="" ng-controller="myController">
{{selectedElements}}
<div ng-repeat="elem in selectedElements">
    <select 
        ng-model="elem.someThing"   <-- I do not want the someThing here
        ng-options="obj.name for obj in objects">
     </select>

    {{elem}}
</div>
<script>
    var myController = function ($scope) {
        $scope.selectedElements = [{},{}]

        $scope.objects = [
            {"id": "1234","name": "a"}, 
            {"id": "12345","name": "b"},
            {"id": "123456","name": "b"},
            {"id": "123458","name": "c"}
        ];
    };
</script>

你也可以在这里找到一个小提琴:http://jsfiddle.net/dg76hetu/12/

问题是,我真的不想使用:

ng-model="elem.someThing"

因为我的selectedElements数组然后包含“someThing”作为键。 (见小提琴) 直觉上我想做的事情如下:

ng-model="elem"

然而,这不起作用,我也知道我不应该在没有点符号的情况下绑定到模型。

所以我的问题是,如何使用angular来存储“selectedElements”数组中多个选择字段中的所有选定对象?我觉得我错过了一些基本的东西,但是我无法让它发挥作用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用ng-model$index与实际值相关联,然后直接将array[$index]传递给ng-model