gpt4 book ai didi

ember.js - Ember 数据属于与选择下拉 View

转载 作者:行者123 更新时间:2023-12-02 10:56:29 25 4
gpt4 key购买 nike

我正在尝试使用 Ember 和 Ember Data 做一些非常基本的事情。

1) 帖子属于用户;用户有很多帖子

2)在创建新的帖子表单中,我想要选择/下拉所有用户

3)当我编辑帖子(使用相同的表单)时,我想将其正确绑定(bind)回保管箱

问题:执行绑定(bind)到用户列表的下拉菜单的最佳实践是什么?如何绑定(bind)编辑表单以再次填充下拉列表?

用户模型:

App.User = DS.Model.extend({
posts: DS.hasMany('post', {async: true}),
});

帖子模型:

App.Post = DS.Model.extend(Ember.Validations.Mixin, {
user: DS.belongsTo('user', {async: true}),
});

创建新帖子表单:

{{view Em.Select
content=users <<<<< How do I bind this.store.find("user") here?
optionValuePath='content.id'
optionLabelPath='content.name'
}}

我不明白将所选内容与用户绑定(bind)的最佳实践。

尝试 1:

*我正在使用 Ember-Form

  {{em-select
property="user_id"
label="user"
prompt="Select user:"
content=controllers.users.content
optionValuePath="content.id"
optionLabelPath="content.first_name"
}}

关于保存操作:

newItem.set('user', this.store.getById('user', this.get('user_id')));

我尝试使用 user_id 作为表单的属性,并转换回用户对象以在保存时分配给帖子。然而,这种方法有点愚蠢,因为我每次保存时都会主动将 user_id 转换为用户对象。我觉得如果我进行了正确的绑定(bind),应该有一种自动完成的方法,而不是跳过圈子将属性绑定(bind)为 user_id。这也使得当我使用相同的表单编辑帖子时很难重新绑定(bind)。既然所有的关系都已经建立了,我有一种感觉,我在这里做错了什么。我认为一定有更好的方法。

谢谢!

最佳答案

截至 2014 年 9 月,Ember.Select{ async: true } 存在问题。他们在一起玩得不好。

myModel.get('myAsyncRel') 将返回一个 Promise,Ember.Select 无法识别 Promise,因此无法正确处理此问题。

一种解决方法是使用非异步关系。

另一种解决方法是使用如下内容:

关于ember.js - Ember 数据属于与选择下拉 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com