Попытка зарегистрировать представление с уже используемым идентификатором

Поскольку этот commit, мы не можем дважды регистрировать представление с идентификатором. Это кажется логичным. Однако у меня возникла проблема.

маршрутизатор

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

Я не хочу дублировать представление с тем же идентификатором дважды. Я просто хочу, чтобы ember уничтожил фактический, а затем создал новый.

Ответ 1

Кажется, это ошибка в текущей версии. Может, вам стоит открыть билет. Пока это не будет исправлено, это может помочь:

App.ContactShowRoute = Ember.Route.extend({

   renderTemplate : function(controller, model) {
    if(this.lastRenderedTemplate == this.routeName) 
       return; 
    return this._super();
   }
});