在backbonejs中触发路由的最佳方法是什么?

时间:2012-01-09 23:25:42

标签: javascript backbone.js

有多种方法可以调用路由。我目前在视图函数中使用Router.navigate('/ url',true)来触发路由,但似乎也可以触发带有锚标记的路由,其中​​url hash作为href属性。

我想将一个集合渲染到屏幕的方式也与它有关。我有一个全局'索引'视图,为集合中的每个项目渲染一个新的子视图。

    render : function() {
        var self = this;

        $( this.el ).html( _.template( this.template, {} ) );

        this.collection.each( function( model ) {
            self.addOne( model );
        } );
    },

    addOne : function( model ) {
        var project = new TMRS.views.projects.Record( { model : model } );

        $( this.el ).append( project.render().el );
    },

在子视图中,我在单击特定元素时触发路径,它可以正常工作,并且很容易。 但是当我决定使用带有哈希的锚点时,就会再次使用子视图,因为我可以遍历模板中的集合并使用锚标记来处理URL。

我认为最好为每条记录使用一个视图,但我不知道它是否可行。你们觉得怎么样?

1 个答案:

答案 0 :(得分:1)

我在骨干项目中遇到了同样的问题。我认为这一切都取决于可扩展性。你有没有看到子视图需要变得更复杂?如果是这样,那么继续保持子视图会更好。如果你去模板解决方案,那么你需要重新创建子视图,如果你需要比锚更复杂的东西,再次连接它。

在我的项目中,我为下拉列表进行了模板迭代。它们永远不会变得更加复杂。 (最可能的)。

其他大多数事情我都去了,并做了子视图,这样我就不必在以后需要时执行这项工作。此外,它实际上并不需要很长时间。

这是我的2美分,但实际上我认为没有错误的方法。