在Ember数据中迭代DS.hasMany

时间:2017-06-07 14:46:34

标签: ember.js ember-data

我和Ember真的很挣扎。

在我的模型中,我有一个属性:

options: DS.hasMany('UserOptions', {async: false})

在链接到此模型的视图中,我可以通过例如:

轻松访问此属性
{{#each options AS |option|}}
    something....
{{/each}}

这就像魅力一样。

但是当我尝试在控制器中访问此模型值时: this.get('model.options') 我没有获得一系列可爱的支付选项,而是获得了一个ember模型对象数组,而且我无法访问实际数据。

你们有什么想法如何在控制器中访问这些数据并进行处理?

谢谢!

2 个答案:

答案 0 :(得分:2)

this.get('model.options')将为您提供RSVP.Promise,因此您需要使用异步代码。使用:

this.get('model.options').then(options => {
    options.forEach(option => {
        // do what you need with option
    })
});

答案 1 :(得分:0)

下面的代码解决了我的情况:

@get('model.options').toArray().forEach((item) ->
  console.log(item.get('parameter_name')]
)

console.log(@get('model'))确实在控制台中抛出了一些奇怪的东西,但是当我要求一个特定的参数时,它就在那里!

我的问题是我试图打印出整个对象而不是特定值。这些值是存在的,它只是没有打印出整个对象。