2015-07-21 6 views
2

Использование Backbone.js для разработки на переднем конце, есть ли надежный способ визуализации дочернего представления перед отображением соответствующего родительского представления? Есть ли образец для этого? Я могу отображать дочерние представления, но я должен быть осторожным, чтобы всегда отображать родителя. Есть ли образец для безопасного воспроизведения детей перед родителями?Backbone.js parent vs. child views

+1

Чем больше общий шаблон будет оказывать вид ребенка (ы) из внутри родительского 'render' функции. Похоже, вы просите анти-шаблон. –

+0

Я могу попросить анти-шаблон, еще не знаю –

+0

Я думаю, мы можем представить простой сценарий, в котором вы создаете кучу детских просмотров, но переместите их в новое родительское представление и хотите избежать повторного рендеринга childviews. –

ответ

1

Существует один способ сделать это, используя jQuery. Функция jQuery имеет функцию find(). https://api.jquery.com/find/

У меня есть экземпляр Backbone.View, который создает и записывает его самоопределяемый элемент (el), который является элементом div по умолчанию. Приведенный ниже код внутри функции визуализации моего зрения:

   var self = this; 

       var ret = EJS.render($template, {}); //get the template html 

       self.$el.html(ret); //put the html string into self.$el (still not in the DOM though!!) 

       //Facebook's React.js lib 
       React.render(
        <TimerExample start={Date.now()} />, 
        $(self.el).find('#react-timer-example-div-id')[0] 
       ); 


       React.render(
        <MenuExample items={ ['Home', 'Services', 'About', 'Contact us'] } />, 
        $(self.el).find('#react-menu-example-div-id')[0] 
       ); 


      //using the two-way data binding lib "Rivets" 
      Rivets.bind($(self.el).find('#some-id')[0], {obj: exampleObj}) 

Вышеуказанные работы, и я хотел бы сказать, что это отличное решение, чтобы сделать дочерние представления к родительскому мнению, без родительского вида первого, находясь в DOM. Трюк, как я сказал, заключается в использовании $(this.el).find('#xyz');. Если есть лучший способ, я хотел бы услышать это, но это, похоже, работает очень хорошо.

Мой шаблон выше представлен $ шаблон, выглядит следующим образом:

<div> 
    <div id="react-timer-example-div-id">timer example goes here</div> 
    <div id="react-menu-example-div-id">menu example goes here</div> 
    <div id="some-id">blah blah</div> 
</div> 
+0

Итак, что вы ждете, чтобы принять свой собственный ответ в качестве правильного ответа? : D Спасибо, что поделились этим. –

+0

уверенный вещь - я предполагаю, что я буду принимать это как ответ –

+0

Я не могу принять его как ответ еще, мне нужно подождать один день –