gpt4 book ai didi

ember.js - ember-data findAll 在第一次请求时返回 0 条记录

转载 作者:行者123 更新时间:2023-12-02 06:11:54 26 4
gpt4 key购买 nike

引导 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。

我对发生的事情感到困惑,我原以为在记录实现之前不会解决 promise 。

我已经浏览了代码,json 在序列化程序中被解析出来,我无法弄清楚为什么第一次长度为 0。

我无法为此创建 fiddle ,因为它仅在通过其余适配器连接到我们的后端存储时才会发生。

最佳答案

Where is the best place to boot strap ember-data in order to fill the store:



最好的地方是模型钩子(Hook)(而不是 setupController),因为 ember 路由器将等待每个模型钩子(Hook)的 promise 解决,然后再继续下一个。例如:
App.ApplicationRoute = Ember.Route.extend
model: ->
App.Contact.find()

I am confused as to what is going on, I would have thought that the promise would not be resolved until the records are materialized.



同意这是令人惊讶的。我看看能不能找到重现的方法。您可能会尝试的一件事是在 chrome 开发人员工具中启用 XMLHttpRequests,这样您就可以在 ajax 回来之前查看 promise 是否真的解决了。认为它也可能是一个绑定(bind)问题,例如 promise 可能在正确的时间解决,但长度属性不会更新到下一个运行循环。

关于ember.js - ember-data findAll 在第一次请求时返回 0 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com