Переключение с одного региона на другой в Marionette, представления не отображаются правильно


Я работаю с Marionette и у меня есть следующая проблема.

Я создал макет с двумя различными областями. На initialize макет загружает два вида в двух областях моего макета. Скажем ViewA и ViewB. Внутри ViewA запускается событие. Событие потребляется макетом для переключения и вводятся два других вида. Скажем ViewC и ViewD. Всякий раз, когда переключение выполняется, ViewC и ViewD не имеют того же стиля (также css), который я применил к ним. В частности, jQuery Мобильные стили не применяются. Какой-нибудь совет?

Вот некоторый код, где комментарии выделяют важные части.

onConfirm : function() {        
        this.leftView =  new ViewC();
        this.rightView = new ViewD();

        this.leftRegion.show(this.leftView);                                                                        
        this.rightRegion.show(this.rightView);

        // FIX calling trigger('create') seems fix the problem. Why? Is this correct?
        this.$el.trigger('create');
    },

initialize : function() {
        // listen for event triggered from ViewA
        // e.g. GloabalAggregator.vent.trigger("ga:confirm");
        // where "ga:confirm" is a simple string
        GloabalAggregator.vent.on("ga:confirm" , this.onConfirm, this);  

        this.leftView =  new ViewA(), // creating here a new ViewC the style is applied correctly
        this.rightView = new ViewB(); // creating here a new ViewD the style is applied correctly
    },

onRender : function () {
        this.leftRegion.show(this.leftView);                                                                        
        this.rightRegion.show(this.rightView);
    }

EDIT

Вызов trigger('create'), кажется, решил проблему. Почему? Это правильно?

1 2

1 ответ:

Когда вы добавляете новый html на страницу (Добавить новый визуализированный вид, поменять вид на какой-то другой вид и т. д..), вы должны сообщить об этом jQuery mobile.

Событие"create"используется для улучшения "сырого" html с помощью мобильных виджетов jQuery. Более подробную информацию можно найти здесь: http://jquerymobile.com/demos/1.0/docs/pages/page-scripting.html Найдите раздел "улучшение новой разметки".