私は、ネストされたメニューを含めるBrunchとBackbone.jsを使ってアプリケーションを構築しています。 MenuItemModelとMenuItemsCollectionを作成しました。両方とも、対応するバックボーンベースオブジェクトを拡張しています。Backbone.jsのネストされたビューで循環依存関係を解決する方法
さらに、MenuItemView(個々のアイテム用)とMenuItemsView(アイテムのコレクション用)があります。
class MenuItemView extends Backbone.View
tagName: 'li'
initialize: (options) ->
if @model.get('children')?
childCollection = new MenuItemList
childView = new MenuItemsView
el: $('<ul>').appendTo @el
collection: childCollection
class exports.MenuItemsView extends Backbone.View
initialize: (options) =>
@collection.bind 'add', @add
add: =>
view = new MenuItemView { model: @collection.last() }
あなたが見ることができるように、そこに二つのビュー間の循環依存関係だ、といない完全に予想外に、「キャッチされないにReferenceErrorでライン「childView =新MenuItemsView」結果:MenuItemsViewストリップダウン、彼らはこのように見えます私のJSコンソールでは定義されていません "。
私の質問は、これを解決する方法があるかどうかです。後でコード内で再帰関数を使用してネストされたメニューを作成することはできますが、これは私が望むようにきれいで自蔵的ではないようです。さらに、私は上記のコードのようにネストされたビューを使用することをSOFで提案する次の2つのインスタンスを見つけました。私は間違って何をしていますか?
https://stackoverflow.com/a/6476507
Nesting Views within Views in backbone js
'class exports.MenuItemsView extends Backbone.View'の代わりに' MenuItemsView extends Backbone.View'を試しましたか? – Atinux