我結束了使用類似的東西到底是怎麼描述:Run Template in Template (recursion) within underscore.js template engine,但我使用的CoffeeScript所以它是略有不同:
的觀點:
# foo.js.coffee
class MyApp.Views.Foo extends Backbone.View
template: JST['foo']
inititalize: ->
#init stuff
render: =>
templateFn = @template
$(@el).html(@template(model: @model, templateFn: templateFn))
@
的@model
將有份額裏面的孩子他們的父母的結構。
模板:
# foo.jst.eco
<%# other output stuff here %>
<%# there is a 'components' attribute that contains the children %>
<% if @model.get('components') : %>
<%# recursive output of components %>
<% for e in @model.get('components') : %>
<% foo = new MyApp.Models.Foo() %>
<% foo.set(e) %>
<%# note the - instead of = below... in my case the JSON contains HTML entities %>
<%- @templateFn(model: component, templateFn: @templateFn) %>
<% end %>
<% end %>
來源
2012-09-19 17:19:11
mga
這看起來像一個樹形結構。爲什麼不只是每個'Foo'都有一個視圖,並且取決於你想如何顯示每個視圖都有一個視圖模板。究竟是什麼問題? – PhD
是的...它是一棵樹......事情是'Foo'視圖需要遞歸,我不知道如何在Backbone中實現這個視圖 – mga
你是什麼意思視圖是遞歸的?每個遞歸函數都可以用迭代的形式編寫,所以我不確定問題是什麼。你能給個例子嗎? – PhD