Ember JS加载和错误子状态

时间:2014-10-27 16:23:22

标签: javascript ember.js lazy-loading loading handlebars.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 个答案:

答案 0 :(得分:1)

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

说明:

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

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