我的路线中有以下查询参数:
queryParams:
search:
refreshModel: true
当我更改search
param时,所有内容都会按预期更改并重新加载模型。
问题是:如何检查路线是否仍在刷新?
PS:model.isLoaded
是true
,因为页面首次加载。
UPD:我想要实现的目标:我有ObjectsController,里面有搜索和表格。当用户提交他的查询时,我想隐藏表并显示一个微调器。
答案 0 :(得分:4)
帮助我的解决方案。
Ember.Route有两个有用的事件loading和didTransition:
actions:
loading: ->
@controller.set('loading', true) if @controller
didTransition: ->
@controller.set('loading', false) if @controller
然后在tempalate:
..search form..
{{#if loading}}
show spinner
{{else}}
..render collection..
{{/if}}
答案 1 :(得分:0)
只要查询参数移回路径的模型函数时,路径应该回到加载状态,请参阅我的示例bin
答案 2 :(得分:0)
您的路由器是:
App.Router.map(function(){
this.resource('objects', function(){
this.route('new');
});
});
如果您的ObjectsIndexRoute返回不立即解析的承诺,Ember将尝试在层次结构中找到加载路径
-objects.loading
-loading
'对象/加载'模板将呈现在'对象的子模板(例如,对象/索引)的区域上。模板渲染。
请查看http://emberjs.com/guides/routing/loading-and-error-substates/了解更多详情。
我将搜索表单放在对象模板中,并生成对象/索引模板。对象/加载模板在加载时替换对象/索引。
更新:
JSBin:http://jsbin.com/wenuy/1。要交替加载'使用布尔属性旋转器和搜索结果。