繁体   English   中英

ng-options选择默认值

[英]ng-options select default value

所以我的问题几乎与此相同: 如何使用ng-option设置select元素的默认值

我无法获得很好的选择价值。 我还尝试了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属性...

就像我在跑圈...

您期望car.ville被绑定到城市对象,但是您的ngOptions “说”该模型应该被绑定到城市名称

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

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

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

另请参见此简短演示


更新:

如果您确定cities中的每个商品都有唯一的_id ,则可以根据track by功能(在v1.2中引入)找到一个更简单的替代方法:

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

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

另请参见此其他简短演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM