gpt4 book ai didi

ruby-on-rails - Backbone.js 与生态模板 : How to include template within a template?

转载 作者:行者123 更新时间:2023-12-04 20:20:12 25 4
gpt4 key购买 nike

是否可以在模板中包含模板?也许类似于 ERB 处理部分的方式?

与其尝试以 ERB 之类的方式渲染嵌套模型,不如让 Backbone.js 来处理这个问题。

请注意,我使用的是 coffeescript 语法:

项目.IndexView

template: JST["backbone/templates/projects/index"]

addAll: () ->
@options.projects.each(@addOne)

addOne: (project) ->
view = new Worktimer.Views.Projects.ProjectView({model : project})
@$("#projects-table").append(view.render().el)

render: ->
$(@el).html(@template(projects: @options.projects.toJSON() ))
@addAll()

模型 Project 有一个名为 session 的嵌套集合:

项目.ProjectView
template: JST["backbone/templates/projects/project"]

$(@el).html(@template(@model.toJSON() ))
for s in @model.sessions.models
v = new Worktimer.Views.ProjectSessions.ShowView(model: s)
$(@el).find('.sessions').append(v.render().el)

ProjectSessions.ShowView
template: JST["backbone/templates/project_sessions/show"]

render: ->
$(this.el).html(@template(@model.toJSON() ))

所以,最后我们有这样的嵌套模板:
  • 项目索引
  • 项目
  • 专场
  • 专场
  • 专场
  • 专场
  • 项目
  • 专场
  • 项目
  • 专场
  • 专场
  • 最佳答案

    这里有一个我用于脊柱的小 helper :

    # Render Partials in ECO-Templates like in Rails-ERB
    #
    # usefull to clean up structure in spine.js and other js-mvc´s like backbone
    #
    # usage:
    # <%- render_partial 'path/to/partial' %> .. will render ../spine-app/views/path/to/_partial.jst.eco
    # <%- render_partial 'path/to/partial', foo: 'bar' %> .. will render ../spine-app/views/path/to/_partial.jst.eco .. locals = @foo
    #
    window.render_partial = ( path, options = {} ) ->
    # add the leading underscore (like rails-partials)
    path = path.split('/')
    path[ path.length - 1 ] = '_' + path[ path.length - 1 ]
    path = path.join('/')
    # render and return the partial if existing
    try
    JST["app/views/#{ path }"]( options )
    catch error
    # if App.Environment != 'production' then "<p class='error'>Sorry, there is no partial named '#{ path }'.</p>" else ''
    "<p class='error'>Sorry, there is no partial named '#{ path }'.</p>"

    关于ruby-on-rails - Backbone.js 与生态模板 : How to include template within a template?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399673/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com