2

我需要查询我的服务器以查看需要为给定用户呈现哪个视图。所以我在我的 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?

}

或者也许我不会以最好的方式处理这个问题?我只是想用一些字符串替换来更改 url,但这似乎不像 ember 方式......

谢谢!

4

2 回答 2

2

确保您的路线中有“建筑”,如下所示:

App.Router.map(function() {
    //...
    this.resource('building');
    //...
}

将参数添加到您的函数:

Util.getNodeData = function(node, router) {
    // ...
    router.transitionTo('building')
    // ...
}

然后在您的 ApplicationRoute 中触发它:

Util.getNodeData(gVars.node, this);
于 2013-09-03T23:42:44.157 回答
1

ember 方法不是直接更改 url,而是使用路由的重定向钩子。此外,ApplicationRoute从一些默认路由(如IndexRoute.

请参阅Ember 路由指南中的重定向

于 2013-09-03T23:30:31.510 回答