javascript - 无法在 angularjs 中加载下拉列表的 ng-model

标签 javascript angularjs angularjs-ng-repeat

我有 items 作为我的 json 对象,其中包含一些我想在下拉列表中显示的数据。
但它仍然显示我的下拉列表为空白。
这里我使用的是 ng-repeat。
I have listed my code here.
HTML:

<div ng-controller="Ctrl">   
    <div ng-repeat="item in items">
        <select ng-model="item.shareToOption" ng-options="c.value for c in shareToOptions"></select>
    </div> 
<div>

JS:

var app = angular.module('app', []);

function Ctrl($scope) {
        $scope.items = [
            {
            "shareToOption" : {id:1,value:"AA1"}
            },
            {
            "shareToOption" : {id:2,value:"AA2"},
            },
            {
            "shareToOption" : {id:3,value:"AA3"},
            },
            {
            "shareToOption" : {id:4,value:"AA4"}
            }
        ];

        $scope.shareToOptions = [
            {id:1,value:"AA1"},
            {id:2,value:"AA2"},
            {id:3,value:"AA3"},
            {id:4,value:"AA4"},
            {id:4,value:"AA5"},
            {id:4,value:"AA6"},
            {id:4,value:"AA7"}
        ];
}

最佳答案

您应该为 ng-options 使用新的 track by 表达式。像这样的事情:

<div ng-controller="Ctrl">   
    <div ng-repeat="item in items">
        <select 
          ng-model="item.shareToOption" 
          ng-options="c.value for c in shareToOptions track by c.id"
        ></select>
    </div> 
<div>

确保您使用的是 Angular 1.2。

关于javascript - 无法在 angularjs 中加载下拉列表的 ng-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373274/

相关文章:

javascript - 我如何通过 PHP 和 mySQL 从 JQuery 加速 Chart.js 图形生成?

javascript - 如何在angularjs中访问aws s3中的私有(private)文件

javascript - 我们如何知道在更改过滤器模型后自定义过滤器何时在 ng-repeat 上完成

angularjs - 如何根据其属性之一的值在 Controller 中获取 ng-repeat 过滤器中项目的索引?

javascript - 浏览器中的 websocket 客户端可以发送 header 吗?

javascript - 在 Google Chrome 中使用 JavaScript 显示窗口打印对话框

javascript - jQuery - 组合 .hide() 和 .remove()

javascript - 下拉列表和值

Angularjs 仅当所选文件为图像时才显示图像预览

javascript - 在嵌套的 ng-repeat 中过滤复杂对象