Как обрабатывать вложенные представления с Backbone.js ?

#javascript #jquery #view #backbone.js

#javascript #jquery #Вид #backbone.js

Вопрос:

В моем приложении у меня их несколько tagList , каждое содержит несколько, tags сгруппированных по index_name .

Я не понимаю, как мне справиться с этим с помощью базовых представлений.

У меня есть TagListView который расширяется Backbone.View , я думаю, я буду обрабатывать все события с помощью этого представления.

Мой главный вопрос i: должен ли я создать TagView с функцией рендеринга, которая создавалась бы и отображалась для каждого тега в TagListView функции рендеринга?


Вот что я делаю на данный момент, на мой взгляд: (это нормально для инициализации ?!)

     <ul id="strategy-tags">
        <!-- initial data -->
        <script type="text/javascript">
            AppData.strategyTagList = $.parseJSON('<?php echo json_encode($strategyTagList); ?>');
            strategyTagListView = new App.TagListView({el : "#strategy-tags", data: AppData.strategyTagList});
        </script>
    </ul>
  

Внутри моего core.js :

     App.TagListView = Backbone.View.extend({

        // dom event specific to this item.
        events: {
        },

        initialize: function(options) {
            this.el = options.el;
        },

        render: function() {
            // let's construct the tag list from input data
            _.each(options.data, function(index) {
                // render index? <-- how ?
                _.each(index, function(tag) {
                    // render tag? <-- how ?
                    console.log(tag);
                });
            });
            return this;
        }

    });
  

Большое спасибо.

Ответ №1:

Я бы сказал, да, преимущество возможности повторного отображения отдельного представления «элемент» по отдельности заключается в том, что если вы вносите изменения в модель, стоящую за таким элементом, браузеру потребуется повторно отобразить только этот элемент. Что лучше для производительности.

Ответ №2:

Похоже, здесь речь идет о детализации, и я иногда задавал себе этот вопрос. Мой совет был бы не перегружать представления. Это сродни созданию объектов для всего на java — иногда достаточно простой строки. Если вы обнаружите случай повышенной детализации в будущем, вы всегда можете вернуться и изменить его.