Базовая Марионетка, Composite View инициализируется дважды
Я использую составное представление, для которого $ .dialog называется $ el.
Составное представление затем перечисляет элементы из коллекции.
Теперь я попробовал несколько способов визуализации элементов коллекции: выборку извне составного представления до и после присоединения его к представлению, выборку внутри представления, предварительную загрузку коллекции из сценария моего сервера и т. Д.
кажется, все работает, но возникает та же проблема ..
как только составное представление видит эту коллекцию, оно снова вызывает свою собственную функцию инициализации ...
Я полностью понимаю, что функция рендеринга будет вызываться при сбросе коллекции или добавлении ... но инициализация ??? Я понятия не имею, почему это происходит.
showCustomFieldSelect: function(e){
log('triggered');
e.preventDefault();
var cl = new AustApp.Collections.CustomField;
var select = new AustApp.Views.AvailableCustomFieldsList({
el: "#available-custom-fields-popup",
collection: cl
});
cl.fetch();
cl.once("reset", function(){
// this bind was
// previously used for creating the view
// or calling render functions directly
// amongst numerous efforts to debug
}, this);
},
MyApp.Views.AvailableCustomFieldsList = function(){
var AvailableCustomFieldsList = Backbone.Marionette.CompositeView.extend({
template: "#available-contact-list-custom-field-list-js",
tag: "div",
itemView: AustApp.Views.AvailableCustomFieldsListItem,
emptyView: AustApp.Views.EmptyAvailableCustomFieldsListItem,
itemViewContainer: "ul",
templateHelpers: viewHelpers,
initialize: function(){
log('init called'); // called twice?????
this.render();
this.$el.dialog({
title: "Available Custom Fields",
width: '600px',
modal: true,
dialogClass: "round",
});
},
/* stuff */
});
return AvailableCustomFieldsList;
}();
Любая помощь оценена, так как я сбит с толку