2013-03-11 2 views
0

После того, как я удалю представление о том, что взгляды EL также удалены, что немного для меня. Путь мой взгляд установки является то, что у меня есть PHP-файл, который загружается вПерезагрузка заднего плана после того, как она была удалена?

<div id="main_destinations" class="trip_container"></div> 

, а затем, что обертка имеет шаблон, загруженный в него. Проблема, с которой я сталкиваюсь, заключается в том, что когда я удаляю это представление, я также удаляю эту оболочку, и я не уверен, что мне делать. Есть способ сохранить обертку? Должен ли я воссоздавать эту пустую оболочку, а затем загружать в нее шаблон. Каков наилучший способ справиться с этим?

Я понимаю, что EL должен быть уже в DOM перед загрузкой представления и присоединением событий, поэтому я не понимаю, почему удаление представления удаляет его EL.

ОБНОВЛЕНИЕ - КАК УДАЛИТЬ ВИД:

if(typeof mysite.city != "undefined") 
{      
    mysite.city.View.prototype.remove.call(cityViewValue); 
} 

Как инстанцирует мой взгляд:

cityViewValue = new mysite.city.View(page, country, city, city_id); 
+0

Не можете оставить комментарий, пожалуйста, оставьте свой отзыв. Не обязательно, чтобы ваш элемент EL присутствовал в DOM во время создания представления. Если вы не проходите мимо el, позвоночник достаточно интеллектуальный, чтобы создать пустой div как el, пока вы не укажете тэг. – sachinjain024

+0

@blunderboy - Смотрите мое обновление. –

ответ

0

Вот определение Backbone.View.Prototype.remove

function() { 
    this.$el.remove(); 
    this.stopListening(); 
    return this; 
} 

Это ясно показано, он удаляет элемент el из DOM. Вот альтернативное решение вашей проблемы: Создайте функцию обновления в поле зрения, удалите элемент, который вы хотите удалить из своего представления, и загрузите шаблон в своем представлении.

refresh: function() { 
    this.$('.dynamic-data').remove(); //Assuming your element to be removed has class dynamic-data and is unique in this view. Otherwise we will write specific selector here 
    var html = ; // Load template here 
    $(this.el).append(html); 
} 
Смежные вопросы