我需要查询我的服务器以查看需要为给定用户呈现哪个视图。所以我在我的ApplicationRoute上有这个激活功能来查找正确的视图。
App.ApplicationRoute = Ember.Route.extend({
activate: function() {
Util.getNodeData(gVars.node);
}
});
这是我查找正确视图的函数:
Util.getNodeData = function(node) {
// blah blah, figure out we need to go to the 'building' view: #/building
// how do I go there?
}
或者也许我不会以最好的方式解决这个问题?我只是想用一些字符串替换来更改网址,但这看起来不像是一种尴尬的方式......
谢谢!
答案 0 :(得分:2)
确保您的路线中有“建筑物”,如下所示:
App.Router.map(function() {
//...
this.resource('building');
//...
}
为您的函数添加参数:
Util.getNodeData = function(node, router) {
// ...
router.transitionTo('building')
// ...
}
然后在你的ApplicationRoute中激活它:
Util.getNodeData(gVars.node, this);
答案 1 :(得分:1)
ember方式不是直接更改网址,而是使用路由的重定向挂钩。此外,从ApplicationRoute
执行此操作也没有意义,而是从IndexRoute
等默认路由执行此操作。
请参阅Ember路线指南中的Redirection