为了填充商店,引导 ember-data 的最佳位置是哪里:
我目前正在使用 ember-data 的修订版 13。
目前我正在 ApplicaitonRoute 中尝试此操作:
App.ApplicationRoute = Ember.Route.extend
setupController: ->
App.Contact.find().then (contacts) ->
console.log contacts.get('length')
我发现上面的 console.log 语句将记录 0 但如果我输入:
App.Contact.find().get('length')
进入控制台,长度如我所料,即大于0。
我对发生的事情感到困惑,我本以为在记录落实之前承诺不会得到解决。
我已经检查了代码,并且在序列化器中解析出 json,但我无法弄清楚为什么长度第一次为 0。
我无法为此创建小提琴,因为它仅在通过其余适配器连接到我们的后端存储时才会发生。
为了填充商店,引导 ember-data 的最佳位置是哪里:
最好的地方是模型钩子(而不是 setupController),因为 ember 路由器将等待每个模型钩子的承诺解决,然后再继续下一个。例如:
App.ApplicationRoute = Ember.Route.extend
model: ->
App.Contact.find()
我对发生的事情感到困惑,我本以为在记录落实之前承诺不会得到解决。
同意这令人惊讶。我看看能不能找到重现的方法。您可以尝试的一件事是在 chrome 开发人员工具中启用 XMLHttpRequests,以便您可以在 ajax 返回之前查看承诺是否真正得到解决。认为这也可能是一个绑定问题,比如承诺可能在正确的时间解决,但长度属性直到下一个运行循环才会更新。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)