遍历 Ember 数据中的 DS.hasMany
Iterating over DS.hasMany in Ember data
我与 Ember 有真正的斗争。
在我的模型中我有一个属性:
options: DS.hasMany('UserOptions', {async: false})
在链接到此模型的视图中,我可以通过以下方式轻松访问此 属性:
{{#each options AS |option|}}
something....
{{/each}}
这很有魅力。
然而,当我尝试在控制器中访问这个模型值时:
this.get('model.options')
我没有获得一系列可爱的付款选项,而是获得了一个 ember 对象模型数组,而且我无法访问实际数据。
你们知道我如何在控制器中访问这些数据并处理它吗?
谢谢!
this.get('model.options')
会给你RSVP.Promise
,所以你需要使用异步代码。使用:
this.get('model.options').then(options => {
options.forEach(option => {
// do what you need with option
})
});
下面的代码解决了我的问题:
@get('model.options').toArray().forEach((item) ->
console.log(item.get('parameter_name')]
)
console.log(@get('model'))
确实在控制台中抛出了一些奇怪的东西,但是当我询问特定参数时,它就在那里!
我的问题是我试图打印出整个对象而不是特定值。值在那里,只是出于某种原因没有打印整个对象。
我与 Ember 有真正的斗争。
在我的模型中我有一个属性:
options: DS.hasMany('UserOptions', {async: false})
在链接到此模型的视图中,我可以通过以下方式轻松访问此 属性:
{{#each options AS |option|}}
something....
{{/each}}
这很有魅力。
然而,当我尝试在控制器中访问这个模型值时:
this.get('model.options')
我没有获得一系列可爱的付款选项,而是获得了一个 ember 对象模型数组,而且我无法访问实际数据。
你们知道我如何在控制器中访问这些数据并处理它吗?
谢谢!
this.get('model.options')
会给你RSVP.Promise
,所以你需要使用异步代码。使用:
this.get('model.options').then(options => {
options.forEach(option => {
// do what you need with option
})
});
下面的代码解决了我的问题:
@get('model.options').toArray().forEach((item) ->
console.log(item.get('parameter_name')]
)
console.log(@get('model'))
确实在控制台中抛出了一些奇怪的东西,但是当我询问特定参数时,它就在那里!
我的问题是我试图打印出整个对象而不是特定值。值在那里,只是出于某种原因没有打印整个对象。