如何在Backbone上创建嵌套模板

时间:2013-03-04 12:15:37

标签: backbone.js coffeescript

我是Backbone上的新手,我试图点击工具栏上的一个按钮(位于工具栏div上),该按钮被称为“新建”。 点击后我想在id =“app-list”的另一个div上打开一个新面板。

但是当按下新按钮时,它总是覆盖“app-list”div

这是我的代码(我正在使用Backbone和coffeescript):

class MyApp.Views.ToolbarAppView extends Backbone.View
  el: "#toolbar-app"

  events: "click #add_new": "newApp"

  newApp: (e) ->
    myapp = new MyApp.Models.App
    @model = myapp
    newPanel = new MyApp.Views.NewAppView({ el: @$el, model: @model, parent: @})
    newParent.render()

 class MyApp.Views.NewAppView extends Backbone.View
   template: JST["myapp", "new_app_view"]

   render: ->
     fieldsPanel = new MyApp.Views.EditAppView({ el: @$el, model: @model, parent: @})
     fieldsPanel.setElement('#app-list').render()



class MyApp.Views.EditAppView extends Backbone.View
  template: JST["myapp", "edit_app_view"]
  tagName: "tr"
  className: "edit_data"

  render: ->
    @$el.html(@template({ el: @$el, model: @model, parent: @})

1 个答案:

答案 0 :(得分:0)

在不知道HTML结构的外观的情况下,推断可能出现的问题并不容易。但是,这两条线路上有一些有趣的东西:

fieldsPanel = new MyApp.Views.EditAppView({ el: @$el, model: @model, parent: @})
fieldsPanel.setElement('#app-list').render()

在构造函数中,您将视图的el设置为ToolbarAppView的{​​{1}},然后在以下行中将元素更改为另一个。

尝试使用以下内容替换这两行:

el

如果失败,请考虑使用更多信息编辑您的问题,尤其是关于HTML模板的相关部分。