将参数设置为默认加载路径 - ember js

时间:2016-03-08 15:35:34

标签: ember.js ember-cli

我的ember项目中有几个路由,有时加载一些视图需要时间,所以我添加了自定义文本的加载模板,加载时自动显示为ember。

有没有办法在加载页面中传递并获取一些参数?

例如,在按钮点击操作的步骤1中:

  controller.transitionToRoute('submit-invoices',data);

  

提交 - 发票   将加载,加载模板显示....我需要将一些参数传递给加载屏幕。

1 个答案:

答案 0 :(得分:2)

Loading substate route的模型钩子被忽略,但setupController不是 这些步骤描述了如何为加载子状态路由设置动态模型:
1.覆盖加载子状态路由的setupController 2.使用params方法访问加载子状态路由的父路由的paramsFor 3.将模型(基于父代的参数)分配给加载子状态控制器

实施例

说明
路线items可以获得查询参数length 我们希望显示一个加载模板,例如:

Loading {{length}} items...
Please wait

实施:

// app/routes/items-loading.js

import Ember from 'ember';

export default Ember.Route.extend({
    setupController(controller/*, model, transition*/) {
        var itemsParams = this.paramsFor('items');
        controller.set('model', Ember.Object.create({
            numberOfItems: itemsParams.length
        }));
    }
});
{{!-- app/templates/items-loading.hbs --}}

Loading {{model.numberOfItems}} items...
Please Wait

因此,当转换到/items?length=10时,将呈现以下加载模板:

Loading 10 items...
Please wait

注意:使用Ember.Route.paramsFor,您可以访问查询参数以及当前路径链中任何路径的动态细分。