Ember.js 在DS.hasMany上迭代余烬数据
我和余烬有一场真正的斗争 在我的模型中,我有一个属性:Ember.js 在DS.hasMany上迭代余烬数据,ember.js,ember-data,Ember.js,Ember Data,我和余烬有一场真正的斗争 在我的模型中,我有一个属性: options:DS.hasMany('UserOptions',{async:false}) 在链接到此模型的视图中,我可以通过以下方式轻松访问此属性: {{#each options AS |option|}} something.... {{/each}} 这就像一个符咒 但是,当我尝试通过以下方式访问控制器中的此模型值时: this.get('model.options') 我没有得到一个漂亮的支付选项数组,而是得到了一个
options:DS.hasMany('UserOptions',{async:false})
在链接到此模型的视图中,我可以通过以下方式轻松访问此属性:
{{#each options AS |option|}}
something....
{{/each}}
这就像一个符咒
但是,当我尝试通过以下方式访问控制器中的此模型值时:
this.get('model.options')
我没有得到一个漂亮的支付选项数组,而是得到了一个对象的余烬模型数组,我无法访问实际数据
你们知道我如何访问控制器中的数据并处理它吗
谢谢 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'))
在控制台中抛出了一些奇怪的东西,但是当我要求一个特定的参数时,它就在那里
我的问题是,我试图打印出整个对象,而不是特定的值。值就在那里,它只是出于某种原因没有打印整个对象。您可以使用
this.get('model.options').toArray()
或者关系被视为承诺,所以this.get('model.option')。然后((result)=>{let newArray=result.toArray()})
谢谢Daniel。我已经尝试过了,但不幸的是我得到了未捕获的TypeError:this.get(…)。then不是一个函数
…:/当您这样做时,模型是否已加载?console.log(this.get('model')提供了什么?是的,我想是的console.log(this.get('model'))
打印出类{id:'4868',存储:类,容器:容器,{u internalModel:internalModel…}适配器错误:null areChildrenDirty:ComputedProperty changeVersion:32容器:容器当前状态:(…)id:'4868“isError:false存储:类到字符串:函数()willDestroy:函数willDestroy()_internalModel:internalModel _oldWillDestroy:函数superWrapper()_super:函数superFunction()