10

由于这个提交,我们不能用一个 ID 注册一个视图两次。这似乎合乎逻辑。但是我遇到了一个问题。

路由器

App.Router.map(function() {
    this.resource('contact', { path: '/contacts/:contact_id' });
});

App.ContactShowRoute = Ember.Route.extend({});

看法

App.ContactShowView = Em.View.extend({
   elementId: "page-show-contact"
});

考虑到我已经在App.ContactShowRoute路线上。我想transitionTo()相同的路线但具有不同的上下文。

我希望 emberjs 销毁视图然后再次创建它,但我收到以下错误:

Uncaught Error: assertion failed: Attempted to register a view with an id already in use: page-show-contact

我不想两次实例化具有相同 ID 的视图。我只想让 ember 破坏实际的,然后创建一个新的。

4

1 回答 1

3

It seems to be a bug in the current version. Maybe you should open a ticket. Until this is fixed, this might help:

App.ContactShowRoute = Ember.Route.extend({

   renderTemplate : function(controller, model) {
    if(this.lastRenderedTemplate == this.routeName) 
       return; 
    return this._super();
   }
});
于 2013-02-21T18:56:22.763 回答