2013-05-10 1 views
1

В настоящее время я создаю большое базовое приложение, и вот мой вопрос. Как справиться с элементами DOM лучше всего подходит? Теперь я просто нахожу все элементы, которые будут доступны в будущем (формы и т. Д.) В функции инициализации моего представления и привязать их к самому представлению. Таким образом, мне не нужно искать эти элементы каждый раз, когда мне нужно взаимодействовать с ними. Но количество этих ссылок быстро растет на самом деле. Это хороший подход или я могу сделать лучше? Заранее спасибо :)Backbone.js Ссылки на элементы DOM-ссылок

Пример кода:

initialize: function() { 
    this.form1 = this.$el.find('.whatever'); 
    ... 
    ... 
} 
+1

Да я то же самое ... Вы, вероятно, следует упростить свои взгляды, если у вас слишком много DOM элемента ссылки на просмотр – imrane

ответ

1

После применения метода $use.selector будет кэшировать.

HTML:

<div data-container> 
    <div data-something>smthng</div> 
</div> 

JS:

var View = Backbone.View.extend({ 
    el : '[data-container]', 
    ui : { 
     something : '[data-something]' 
    }, 
    someFn : function() { 
     this.$use(this.ui.something).css('background', '#999'); 
     return this; 
    }, 
    $use : function (selector) { 
     console.log(typeof this.ui[selector] === 'undefined' ? 'dom query' : 'already cached'); 
     var $selector = this.ui[selector] === selector ? 
      this.ui[selector] : 
      this.$(selector); 

     return this.ui[selector] = $selector; 
    } 
}); 

new View().someFn().someFn().someFn(); 

Демо: http://jsfiddle.net/vpetrychuk/K7nmr/

 Смежные вопросы

  • Нет связанных вопросов^_^