我有以下模型设置:
deliveryMethods: DS.hasMany("delivery-method", { async: true })
使用此计算属性:
### COMPUTED PROPERTIES ###
formattedDeliveryOptions: (->
@get('deliveryMethods').map((dm) ->
console.log dm.toJSON()
return { key: dm.get('name').underscore, value: dm.get('name') }
)
).property("deliveryMethods.@each")
我试图在控制器中访问此属性,如下所示:
deliveryMethodsArray: (->
org = @get('controllers.application.currentOrganization')
console.log org.get('formattedDeliveryOptions')
return org.get('formattedDeliveryOptions')
).property()
但是当console.log dm.toJSON()
运行时,organization
属性已设置,但没有其他任何内容。不确定我做错了什么
答案 0 :(得分:0)
因为异步是真的,我相信你需要在获得承诺上做一个then()。
org.get('formattedDeliveryOptions').then((fmtOpts) => { /* do something*/ });
请原谅我的语法,你使用的缩写版本与我的略有不同。这个概念应该是相同的。