0

私はBackboneを初めて使用し、ツールバーのボタン(toolbar 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: @})
4

1 に答える 1

0

HTML構造がどのように見えるかを知らなければ、何が問題であるかを推測するのは簡単ではありません。ただし、ここでは、これら2つの行で何か面白いことが起こっています。

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

コンストラクターでビューelToolbarAppView'に設定elし、次の行で要素を別の要素に変更します。

2行を次のように置き換えてみてください。

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

それが失敗した場合は、特にHTMLテンプレートの関連部分に関して、より多くの情報を使用して質問を編集することを検討してください。

于 2013-03-04T12:23:48.380 に答える