首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据加载前的Ember.js呈现模板

数据加载前的Ember.js呈现模板
EN

Stack Overflow用户
提问于 2013-03-15 16:34:39
回答 1查看 1.9K关注 0票数 1

目前,我正在使用ember rc-1和ember-data rev-11。

我想知道是否有可能在从子路由获得ajax成功之前呈现父路由模板。

我有一个路由器:

代码语言:javascript
复制
-index
      -objects

索引模板:

代码语言:javascript
复制
<!-- some html that i would like to display on page load event -->
{{outlet}}

对象的模板:

代码语言:javascript
复制
{{#each item in controller }}
<!-- data from item -->
{{/each}}    

对象路由模型方法:

代码语言:javascript
复制
model: function(){
    return App.Object.find({limit: 0}) //this request is really heavy for backend and takes a lot of time
}

因此,当我导航到对象url时,我会看到一个空白页面,直到我从服务器得到包含所有对象的响应。

也许我在前面,但它在ember pre2或pre-3中工作得很好。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-15 20:35:17

默认情况下,如果您向model.find传递一个查询,它将返回一个promise。如果您的路由的模型钩子返回了promise,那么ember路由器将进入加载状态,等待promise得到解析。

如果您使用App.Object.find(),那么ember将返回一个没有promise的实时查询。如果这是第一次为模型调用find,store将启动一个没有参数的异步查询来加载初始数据集。

有什么想法吗?

理想情况下,如果你能去掉{limit: 0}参数,那就更好了。否则,考虑从setupController钩子设置模型:

代码语言:javascript
复制
App.PostRoute = Ember.Route.extend({
  setupController: function(controller, model) {
    controller.set('content', App.Object.find({limit: 0}));
  }
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15427841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档