如何去Ember.js路线?

时间:2013-09-03 23:20:17

标签: ember.js

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

}

或者也许我不会以最好的方式解决这个问题?我只是想用一些字符串替换来更改网址,但这看起来不像是一种尴尬的方式......

谢谢!

2 个答案:

答案 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