У меня есть следующий код в определении Item Item:
class AdProductDetailsView extends Marionette.ItemView
el: '#product-details'
template: =>
price =
amount: if @model.get('price') then @model.get('price').get('amount') else 0
currency: if @model.get('price') then @model.get('price').get('currency') else 'BOB'
AdProductDetailsTemplate
price: Currency.format price.amount, price.currency
contact: @model.get('contact')?.toJSON()
location: @model.get('location')?.toJSON()
Дело в том, что страница не "выполняет" свойство el: '# product-details'. Я однажды попытался поместить его в экземпляр представления в другом коде, но я попробовал его, и он не сработал. Когда я запускаю этот код, на экране ничего не появляется, однако, если я запускаю его без el:..., представление создается и вставляется в свой собственный div, и это тот div, которого я действительно не хочу. Есть идеи?
Может быть условие гонки, так как вы назначаете это представление для #product-details
, оно должно существовать в DOM, прежде чем вы создадите экземпляр этого представления.
Это объясняет, почему без el
это работает, потому что магистраль создает элемент DOM, если он не определен.
el
ДОЛЖЕН быть в DOM, когда создается представление, и кажется, что это не так. Как в вашем случае создается DOM "# product-details"?