2014-10-27 61 views
0

我想确认这里的方法。我的模型中的每个关系都是异步/惰性加载的。当记录正在渲染时,手柄条模板会在将其数据填充到屏幕之前显示。在下面的虚拟示例中,组中的所有用户都会显示红色边框,并且在将其全部填充时存在明显延迟。Ember JS加载和错误子状态

我已经签出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}} 

回答

1

看一看jsbin http://jsbin.com/wenuy/2/edit

说明:

搜索表单(包含搜索文本框和提交按钮是恒定的)。根据搜索词,显示结果的部分正在发生变化。

我已经使用isLoading属性。这个想法是在调用服务器之前将它设置为true,即加载消息。然后,在请求成功(即服务器以所需数据响应)时,将其设置为false,以便“加载”消息隐藏并显示结果部分。

+0

谢谢@苏西。我遵循你的例子,在我的情况下,由于我不需要“加载...”部分,因此将上述内容更改为“{{#unless isLoading}} ... {{/ unless}}”。再次感谢! – Michael 2014-10-27 21:31:59

+0

欢迎:)快乐编码 – Susai 2014-10-28 01:56:28