我想在这里确认一下这个方法。我的模型中的每个关系都是异步/延迟加载的。在记录渲染时,在将数据填充到屏幕之前显示把手模板。在下面的虚拟示例中,红色边框显示为组中的所有用户,并且在填充所有用户时会出现明显的延迟。
我已经检查了http://emberjs.com/guides/routing/loading-and-error-substates/,并且认为我不需要空白的加载模板(如果我错了,请纠正我);我只想显示一个空白部分,并且仅在填充用户姓名时弹出模板(此处为:红色边框和名称)。
Models.User = DS.Model.extend({
email: DS.attr("string"),
firstName: DS.attr("string"),
group: DS.belongsTo("group", {async: true})
});
Models.Group = DS.Model.extend({
title: DS.attr("string"),
users: DS.hasMany("user", { async: true }),
});
{{#each user in group}}
{{#if user.isLoaded }} {{!-- I've also tried user.isFulfilled, user.firstName, user.email --}}
<div style="border: #f00 solid 1px;">
{{user.firstName}}
</div>
{{/if}}
{{/each}}
答案 0 :(得分:1)
查看jsbin http://jsbin.com/wenuy/2/edit
说明:
搜索表单(包含搜索文本框和提交按钮是不变的)。根据搜索词,显示结果的部分将发生变化。
我使用了isLoading属性。这个想法是在调用服务器之前将其设置为true,即加载消息。然后,在请求成功(即,服务器响应所需数据)时将其设置为false,以便“加载”#39;消息获取隐藏,结果部分显示。