ng选项选择默认值

问题描述:

所以我的问题几乎与这一个相同:how to use ng-option to set default value of select elementng选项选择默认值

我不能得到好的价值被选中。我也尝试了许多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)与城市对象关联,改变这样的:

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

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

另外,参见short demo


UPDATE:

如果你确信在cities每一个项目都有一个唯一的_id,有(在V1.2推出)的基础上track by功能一个简单的选择:

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

现在,ngOptions可以将列表中的对象与模型值关联,而不一定通过引用,但基于_id pr operty。 (即“同_id”是指“同一目标”就ngOptions而言,所以请确保您_id s为唯一的。)

还参见本other short demo