backbone.js el: 'jqueySelector' не перехватывает родительский элемент

0

У меня есть следующий код в определении 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, которого я действительно не хочу. Есть идеи?

  • 0
    Вам, вероятно, нужно показать больше кода. Как сказал Патрик, el ДОЛЖЕН быть в DOM, когда создается представление, и кажется, что это не так. Как в вашем случае создается DOM "# product-details"?
Теги:
marionette
backbone.js

1 ответ

0

Может быть условие гонки, так как вы назначаете это представление для #product-details, оно должно существовать в DOM, прежде чем вы создадите экземпляр этого представления.

Это объясняет, почему без el это работает, потому что магистраль создает элемент DOM, если он не определен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню