App.Farm = DS.Model.extend
location: DS.attr 'string'
App.Field = DS.Model.extend
location: DS.attr 'string'
farm: DS.belongsTo 'farm', async: true
markerLocation: Ember.computed.any('location', 'farm.location')
其他地方:
location = field.get('markerLocation')
如果字段的位置值为空,位置是否等于服务器场的位置值?如果没有,那么完成这项工作的方法是什么?
基本上,这里的问题是:
如果我想获取markerLocation值,并且我没有使用绑定,我该怎么做才能在没有设置同步时等待异步值?即使在观察者的内心,我也很难做到这一点。
也许是这样的:
markerLocation: ( ->
promise = new Ember.RSVP.Promise (resolve) =>
location = @get('customLocation')
if location
resolve(location)
else
@get('farm').then (farm) ->
resolve(farm.get('location'))
).property('location', 'farm.location')
然后通过这样做来获得它:
location = field.get('markerLocation').then (location) ->
# do something with location
现在尝试让它以这种方式运作,并且有一些承诺(没有双关语)。
答案 0 :(得分:0)
使用第11行播放,您将看到结果。