Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Backbone.js处理嵌套视图?_Javascript_Jquery_View_Backbone.js - Fatal编程技术网

Javascript 如何使用Backbone.js处理嵌套视图?

Javascript 如何使用Backbone.js处理嵌套视图?,javascript,jquery,view,backbone.js,Javascript,Jquery,View,Backbone.js,在我的应用程序中,我有一些标记列表,每一个都包含一些标记,它们按索引名称分组 我不知道该如何处理主干视图 我有一个标记列表视图,它扩展了主干。视图,我想我会用这个视图处理所有事件 我的主要问题是:我是否应该创建一个带有呈现函数的TagView,该函数将为TagListView呈现函数中的每个标记创建和呈现 在我看来,到目前为止我所做的是:(初始化可以吗?!) 非常感谢。我想说是的,单个“项目”视图能够单独重新渲染的好处是,如果您对此类项目背后的模型进行了更改,则浏览器只需要重新渲染该项目。哪个

在我的应用程序中,我有一些
标记列表
,每一个都包含一些
标记
,它们按
索引名称
分组

我不知道该如何处理主干视图

我有一个
标记列表视图
,它扩展了
主干。视图
,我想我会用这个视图处理所有事件

我的主要问题是:我是否应该创建一个带有呈现函数的
TagView
,该函数将为
TagListView
呈现函数中的每个标记创建和呈现


在我看来,到目前为止我所做的是:(初始化可以吗?!)


非常感谢。

我想说是的,单个“项目”视图能够单独重新渲染的好处是,如果您对此类项目背后的模型进行了更改,则浏览器只需要重新渲染该项目。哪个对性能最好。

这似乎是一个粒度问题,我有时也会问自己这个问题。我的建议是不要过度表达这些观点。这类似于在java中为所有内容创建对象——有时一个简单的字符串就足够了。如果您在将来发现粒度增加的情况,您可以随时回来更改它

    <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>
    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;
        }

    });