我只是在使用angularjs和ui-router模块,我对此并不满意。
我错过了一个函数/进程,它允许我在激活状态之前执行逻辑。
逻辑是计算当前登录用户的一周的第一天。因此,在激活日历的每周视图之前,我必须执行此日期逻辑,以便用户获得如下的URL: / dateplanner /周/ 'Firstdayofweek可'
我不足以显示/ dateplanner / week url。
答案 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