【问题标题】:ng-options select default valueng-options 选择默认值
【发布时间】:2014-07-04 14:40:51
【问题描述】:

所以我的问题和这个差不多:how to use ng-option to set default value of select element

我无法获得被选中的良好价值。我还尝试了许多使用 ng-init 等的解决方案...

但我不知道如何解决它。

我有这个模型:

var CarSchema = new Schema({
[... some stuff ...]
ville: {
    type: Schema.ObjectId,
    ref: 'City'
}
});

var CitySchema = new Schema({
 name: {
    type: String
}
});

我的 HTML 代码:

<select ng-model="car.ville" ng-options="city.name for city in cities"><option value=""/></select>
            HERE 1: {{ car.ville | json }}
            <BR>
            HERE 2 : {{cities | json}}

结果我得到:

HERE 1: { "_id": "536fee62cadf4efc08000001", "name": "Hinsdale" } 

HERE 2 : [ { "_id": "53703935cadf4ef008000000", "name": "Noumea" }, { "_id": "536fee62cadf4efc08000001", "name": "Hinsdale" }, { "_id": "536fee3ccadf4ef808000000", "name": "Bascom" } ]

所以我应该选择欣斯代尔市...但是不,它在第一行(空行)。

我做错了什么??试了这么多配置还是不行

添加小提琴示例:jsfiddle.net/pL44W/5

所以我让它几乎可以用这个小提琴:

http://jsfiddle.net/Tyvain/UuVYL/

  • 可以保存
  • 当我们到达页面时,确定检索良好的价值
  • 不正常:当我们在列表中选择时看不到值。

为了保存,mongo 只需要 ville 属性中的 id。但是要显示,我需要 name 属性...

就像我在绕圈跑...

【问题讨论】:

    标签: javascript html node.js angularjs ng-options


    【解决方案1】:

    您希望car.ville 绑定到一个城市对象,但您的ngOptions“说”模型应该绑定到一个城市name

    如果您想在下拉列表中显示城市名称,但将您的模型 (car.ville) 与城市对象相关联,请将其更改为:

    ng-options="city as city.name for city in cities"
    

    此外,为了让ngOptions 识别模型值,它需要引用数组中的一个项目(而不仅仅是具有相同属性的不同对象,因为相等性检查是通过引用而不是通过值完成的) .

    另请参阅此short demo


    更新:

    如果您确定cities 中的每个项目都有一个唯一的_id,则基于track by 功能(在v1.2 中引入)有一个更简单的替代方案:

    ng-options="city as city.name for city in cities track by city._id"
    

    现在,ngOptions 可以将列表中的对象与模型值关联,不必通过引用,而是基于 _id 属性。 (即,就ngOptions 而言,“相同的_id”表示“相同的对象”,因此请确保您的_ids 是唯一的。)

    另请参阅此other short demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-01
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多