ember.js 如何检测包含关系是否正在加载

jgwigjjp  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(249)

请参见相关旋转https://ember-twiddle.com/e3872f1410e0d844b6d6c6bc9a2c9dc1
第一个
在ember中
1.单击链接以转换到第二条路线
1.观察第二条路线显示“无显示”

  1. 2秒后,当请求完成时,模板将更新以显示hasMany模型
    我希望模板只在对/parents/1的请求完成后才呈现,但事实并非如此
    1.为什么模板不等待路线的模型?
    1.如何通过检测hasMany关系是否正在加载以显示加载指示器来改进UX?
    promise代理上的标志似乎在任何时候都不会更改
tez616oj

tez616oj1#

1.模板不会等待,因为在存储区中找到了记录,承诺会立即解析。
1.我真的希望有一个更好的API,但我分叉了你的旋转,并显示了一个解决方案:https://ember-twiddle.com/af0a823fc73474db1c09083c429fef4f?openFiles=models.parent%5C.js%2C&route=%2Fsecond-route%2F1
基本代码如下:

// app/model/parent.js

get childrenLoading() {
    return this.hasMany('children').load().isPending;
}

this.hasMany('...')是一个返回关系引用的低级Ember Data api。load()方法使它加载(如果它还没有加载),但更重要的是,它返回一个承诺,当关系加载时将解析该承诺。
您可以在api中阅读有关HasManyReference类的更多信息

相关问题