这在backbone.js中是正常的吗?

Is this a normal occurrence in backbone.js?

本文关键字:backbone js 这在      更新时间:2023-09-26

当渲染视图时,我似乎在写这样的东西…

_.each @model.nestedcollection.models, (nestedmodel) ->

我觉得在某些时候我可能需要写一些像…

_.each @model.nestedcollection.models, (nestedmodel) ->
    _.each nestedmodel.nestedcollection.models, (nestednestedmodel) ->
        #pass into new view

这是正常的还是我应该用更好的方式来处理?

这是正常的。骨干文档为迭代提供了一系列下划线方法。你会看到_。每个都排在最前面。您应该了解这些方法(如果您还没有),并使用最合适的方法。您的第二个示例可能是使用_的一个很好的用例。每个都作为外部迭代器,并将更特定类型的迭代器(如select、detect、reject或reduce)作为内部迭代器。根据您的意图选择合适的迭代器函数。

除了已经说过的以外,还有一点需要注意,主干文档中列出的函数在主干集合上是直接可用的。

你不必调用_.each @model.nestedcollection.models, (model) ->,你可以调用@model.nestedcollection.each (model) ->…或者任何正确的coffeescript语法都是。

在功能上是相同的,因为它委托给下划线的each方法,但更容易键入和读取,因为它直接在集合上。

update关于你的问题,我更愿意德里克的具体回答。我的建议太模糊了。

除了看过文档之外,我对backbone不太熟悉。

可以说是OOP:您可以创建一个对象,该对象可以自动迭代其组成的内部模型并呈现它们。这样,它们的任何组合都会自动迭代它们的内部模型并渲染它们。

近似功能:或者,您可以将渲染函数传递给所有嵌套模型,并让它们各自使用它。