我可以在emberjs中使用预先计算的值作为url参数

时间:2014-08-03 10:32:51

标签: ember.js ember-router

我只是在使用angularjs和ui-router模块,我对此并不满意。

我错过了一个函数/进程,它允许我在激活状态之前执行逻辑。

逻辑是计算当前登录用户的一周的第一天。因此,在激活日历的每周视图之前,我必须执行此日期逻辑,以便用户获得如下的URL: / dateplanner /周/ 'Firstdayofweek可'

我不足以显示/ dateplanner / week url。

1 个答案:

答案 0 :(得分:0)

是。在覆盖路由的beforeModel函数时,您可以调用this.transitionTo()并提供不同的路由和模型作为参数。这将自动中止当前路由转换。

例如:

App.Router.map(function() {
    this.resource('dateplanner', function() {
        this.resource('week', { path: "/week/:firstDay" });
    });
});

App.WeekRoute = Ember.Route.extend({
    beforeModel: function(transition, queryParams) {
        return someFunctionToGetFirstDayReturningPromise().then(function(firstDay) {
            return this.transitionTo('dateplanner.week', firstDay);
        });
    }
});

您可以在此处的指南中找到另一个示例(不使用promises或异步代码的示例):

http://emberjs.com/guides/routing/redirection/#toc_based-on-other-application-state

API参考:

http://emberjs.com/api/classes/Ember.Route.html#method_beforeModel

http://emberjs.com/api/classes/Ember.Route.html#method_transitionTo