Ember.Select 使用 belongsTo Ember 数据模型属性的默认选择值?

Posted

技术标签:

【中文标题】Ember.Select 使用 belongsTo Ember 数据模型属性的默认选择值?【英文标题】:Default selected value for Ember.Select using belongsTo Ember Data model property? 【发布时间】:2014-04-25 01:53:39 【问题描述】:

我正在尝试做的似乎是 Ember.Select 的一个非常常见的用例,但我还没有找到解决方案。

我正在尝试使用 belongsTo Ember Data 属性设置 Ember.Select 的默认值。我的模板中有以下 Ember.Select 视图:

view Ember.Select content=neighborhoodOptions value=neighborhood.id optionValuePath="content.value" optionLabelPath="content.label"

这个视图的控制器看起来像:

App.PropertyEditController = Ember.ObjectController.extend(
    neighborhoodOptions: [value: 1, label: 'Foo', value: 2, label: 'Bar']
);

我正在使用 Ember Data 并且有一个模型,该模型具有该控制器的 belongsTo 属性,如下所示:

var attr = DS.attr;

App.Property = DS.Model.extend(
    neighborhood: DS.belongsTo('neighborhood')
);

但是,这不会在页面加载时设置任何默认选项。更糟糕的是,当我在 Ember Inspector 控制台中查看邻域模型时,它会使邻域.id 未定义。如果我从视图中删除 value 属性,则会再次定义 neighbor.id,因此 Ember.Select 值属性行为似乎将 id 设置为未定义。我不明白它为什么这样做。

如何绑定邻居 id 属性并使其成为默认的 Ember.Select 选项?

【问题讨论】:

emberjs 文档中明确提到。请浏览文档emberjs.com/api/classes/… 感谢您的回复,但我已经查看了文档,但在这种情况下没有帮助。我认为暂时最好的办法就是使用 selection 属性,因为 value 属性似乎有问题。 嘿,你能把你的代码放在 jsbin 中吗?可能会有更多帮助 【参考方案1】:

试试:

selection=neighborhood

而不是value。这样它将绑定到该模型实例,而不仅仅是 id 值。

【讨论】:

以上是关于Ember.Select 使用 belongsTo Ember 数据模型属性的默认选择值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel中定义多个belongsTo

如何在 Ember 中使用 belongsTo

我应该在 Laravel 中使用 belongsTo 还是 hasOne?

Sequelize ORM中HasOne和BelongsTo的区别

理解 Laravel 中的 hasOne() 和 belongsTo() 函数

Ember Mirage 模型:对于多个 hasMany 和 belongsTo