需要 ember 模型到 return 数组 promise not object
Need ember model to return array promise not object
我正在尝试 return 我的模型的数组承诺,以便我可以在我的模板中循环遍历结果。我需要 return 的联系产品作为承诺数组而不是承诺对象。
型号:
App.ContactEditorRoute = Ember.Route.extend({
model: function (params) {
return Ember.RSVP.hash({
contact: this.store.find('contact', params.id),
/*need this to return array not an object which is currently does*/
contactproducts: this.store.find('contactproduct',params.id),
products: this.store.find('product')
})
}
模板:(使用标志进行标记)
each contactproduct in contactproducts
p
' quantity
contactproduct.quantity
' notes
contactproduct.note
如果您真的希望它成为一个数组,并具有当前代码结构的方式,那么您可以这样做
contactproducts: this.store.find('contactproduct',params.id)
.then(product => [product])
当您想对 find
的结果进行一些额外处理时,可以采用这种方法,但仍然 return model
旨在实现的承诺。
但是,正如另一位发帖人指出的那样,这可能不是您想要做的。如果联系人产品是 hasMany
属性 个联系人,那么它们已经存在(或者可能根据 {async: true}
为您获取)。
如果contacts没有hasMany('contactproduct')
,那么你可能需要自己去获取,但是我怀疑contact产品是否和contacts有相同的id。如果他们这样做,他们不应该这样做。模型 ID 应该是唯一的。假设联系人产品有一个 belongsTo
指向 contact
那么你想这样做:
contactproducts: this.store.find('contactproduct', { contact: params.id })
其中 将 return 一个数组的(承诺)。
但是,通常在这种情况下,最好将附加检索放在 afterModel
挂钩中。这样可以让您的 model
干净整洁。
我正在尝试 return 我的模型的数组承诺,以便我可以在我的模板中循环遍历结果。我需要 return 的联系产品作为承诺数组而不是承诺对象。
型号:
App.ContactEditorRoute = Ember.Route.extend({
model: function (params) {
return Ember.RSVP.hash({
contact: this.store.find('contact', params.id),
/*need this to return array not an object which is currently does*/
contactproducts: this.store.find('contactproduct',params.id),
products: this.store.find('product')
})
}
模板:(使用标志进行标记)
each contactproduct in contactproducts
p
' quantity
contactproduct.quantity
' notes
contactproduct.note
如果您真的希望它成为一个数组,并具有当前代码结构的方式,那么您可以这样做
contactproducts: this.store.find('contactproduct',params.id)
.then(product => [product])
当您想对 find
的结果进行一些额外处理时,可以采用这种方法,但仍然 return model
旨在实现的承诺。
但是,正如另一位发帖人指出的那样,这可能不是您想要做的。如果联系人产品是 hasMany
属性 个联系人,那么它们已经存在(或者可能根据 {async: true}
为您获取)。
如果contacts没有hasMany('contactproduct')
,那么你可能需要自己去获取,但是我怀疑contact产品是否和contacts有相同的id。如果他们这样做,他们不应该这样做。模型 ID 应该是唯一的。假设联系人产品有一个 belongsTo
指向 contact
那么你想这样做:
contactproducts: this.store.find('contactproduct', { contact: params.id })
其中 将 return 一个数组的(承诺)。
但是,通常在这种情况下,最好将附加检索放在 afterModel
挂钩中。这样可以让您的 model
干净整洁。