С этого 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 уничтожил фактический, а затем создал новый.
Я думаю Ember пробует создать экземпляр нового вида, когда старый View еще в DOM и до сих пор зарегистрирован Эмбер. Теперь создается новый новый вид и присваивается elementId. В этот момент вы получили 2 объекта View с одним и тем же идентификатором, но только один из них находится в DOM. Почему вам нужно определить элемент самостоятельно? Я думаю, что есть быстрое решение. – mavilein