問題タブ [marionette]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3895 参照

backbone.js - Backbone.Marionette モデル.destroy の問題

私は非常にシンプルなバックボーン モデルとコレクションを持っています。対応する backbone.marionette.CollectionView と backbone.marionette.ItemView があり、backbone.marionette.region に住んでいます。

ItemView テンプレートには、「削除」ボタンが含まれています。削除ボタンのクリック イベントは、model.destroy() を発行します。HTTP DELETE がバックエンドに発行されますが、2 回発行されたように見えます。2 回目は失敗したため、アイテムはコレクションから削除されません。

他のすべては正常に機能しており、HTTP DELETE が 2 回発行されているだけです。理由はありますか?

Backbone.Marionette バージョン v0.4.5 を使用しています

0 投票する
1 に答える
1770 参照

backbone.js - バックボーン Marionette で親子関係のルーターを正しく構成する

ユーザーが編集を追加し、親子を組み合わせて表示できるページを作成しようとしています。

UI には 3 つの列があります Parent : 親のリスト Children : Child

ユーザーが元の場所に戻ることができるようにコントローラーを構成したいのですが、親と子の両方を編集できるようにする必要はありません。

// バックボーン マリオネットを使用して近づいていますが、まだいくつかの小さな問題があります

「this.ViewClient」を持つことはハックに感じられ、機能しません。

0 投票する
8 に答える
9235 参照

backbone.js - Backbone はコレクションを逆順にレンダリングできますか?

Signalr ハブを使用して、サーバー上のイベントをサブスクライブしています。どのようなイベントがハブにディスパッチされ、アイテムが Marionette CollectionView に正常に追加されますか。これは、テーブルにレンダリングされます。

Because the table of events is essentially a blotter, I'd like the events in reverse order and preferably only keep n-number of events.

Can Backbone 'automatically' re-render a collection in reverse order?

0 投票する
2 に答える
4934 参照

templates - backbone.marionette で EJS テンプレートを使用するには?

これまで、Rails/Backbone.js アプリケーションで EJS テンプレートを使用してきました。本当にbackbone.marionetteを使い始めたいです。EJS で動作させるにはどうすればよいですか?

ドキュメントには、属性にjQueryセレクターを提供する必要があると書かれてtemplateいますが、私のEJSテンプレートにはjQueryセレクターがあるとは思いません。

アップデート:

これは、テンプレートを使用してビューを正常にレンダリングする方法です。

item.jst.ejsそして、次のようなファイルを含むテンプレートフォルダーがあります。

私のテンプレートフォルダーは次の場所に含まれていますapplication.js

0 投票する
3 に答える
14429 参照

backbone.js - div でスクロール イベントをキャプチャする

Backbone.Marionette.CompositeView 内でスクロール イベントをキャプチャしようとしていますが、成功しません。

演習として、Backbone.Marionette を使用してhttp://www.atinux.fr/backbone-books/を書き直しています。ご覧のとおり、下にスクロールすると、より多くの本が取得されて表示されます (つまり、無限スクロール)。ただし、ビューでスクロール イベントをキャプチャできません。

これが私の(簡略化された)コードです:

完全なソース コードは、 https ://github.com/davidsulc/backbone.marionette-atinux-books/blob/scroll/assets/javascript/app.js#L86-89 で確認できます。

私が理解していないのは、「クリック」イベントが適切にトリガーされていることですが、「スクロール」イベントはそうではありません。私は何を間違っていますか?


編集:エラーは最終的には非常に単純でした...ビューのコンストラクターに「el: #content」を渡していましたが、スクロールは「.library」の CSS で定義されていました。したがって、DOMを次のように変更したら

すべてが正常に機能しました...

0 投票する
2 に答える
2116 参照

javascript - コレクション全体を再レンダリングせずに、コレクションの開始時に新しいレコードを表示しようとするバックボーン (マリオネットも)

コレクションの開始時にアイテムをレンダリングしようとしています (Facebook に新しいレコードを投稿している場合を想像してください)

add(response, {at: 0}); に来たら コレクションに挿入すると、レコードはコレクションの 0 に正しく挿入されますが、アイテムのリストの一番下にレンダリングされます。以前はこれが機能していたので混乱していますが、ハッキーなスタイルで行っていたのは、コレクションをリセットして再レンダリングしただけだと思います。

これを処理するためのきちんとした方法と、ロジックをどこにバインドする必要があるのか​​ 疑問に思っています。

コレクションの add メソッド上ですか?現在、これは空です (ただし、Marionette を使用しています)。これにより、バックボーンのデフォルトのレンダリングが上書きされるように感じます。すべてを破棄して再作成することなく、新しいアイテムをリストに正しく追加できるように、再びそれを制御するにはどうすればよいですか。

0 投票する
1 に答える
765 参照

javascript - メニューを実装するために使用するコンポーネントはどれですか?

次のようなメニューを表示したい:

ご覧のとおり、My lightsabersメニューはアイテムのリストですが、新しいライトセーバーを追加するためのリンクは独立しています。

ライトセーバーリストをレンダリングするにはを使用する必要があると思いCollectionViewますが、「追加」リンクをレンダリングするにはどうすればよいですか?

そのようなメニューの例はありますか?

質問は一般化することができます:マリオネットによってレンダリングされたHTMLのビットを、それが行うことを壊すことなくカスタマイズする方法は?

0 投票する
1 に答える
1041 参照

javascript - Backbone.Marionette および Backbone.ioSync で Backbone.Relational を使用したフェッチ後の fetchRelated

Backbone.Marionette および Backbone.ioSync で Backbone.Relational を使用して、socket.io 経由で同期しています。

より具体的には、関係を介してモードのインスタンスを作成するモデルAがあります。読み込み時には、データが適切に初期化され、レンダリングされます。次に、別のクライアントが の別のインスタンスをに追加します。サーバーは ping を最初のクライアントに送信します。これにより、. フェッチの成功メソッドでは、 を呼び出します。fetch メソッドはリレーションの ID のリストのみを返し、 onをトリガーし、Backbone.Marionatte のコレクション ビューがアイテム ビューの新しいインスタンスを作成して、新しい を表示します。これにより、新しいがまだフェッチされていないため、サイトが壊れます。 .hasManyBbeesBA.beesA.fetch()A.fetchRelated('bees')beeschangeABB

B のビューのレンダリングを、A で定義された遅延オブジェクトに強制的に同期させようとすると、多くのエッジ ケースを処理しなければならない複雑なハックのように思えます。

1 つのアイデアは、オプションfetchを受け入れることを許可することです。しかし、 の関数でおよびイベントsilentをトリガーするのは、おそらくトリッキーです。changeaddsuccessfetch

もう 1 つのアイデアは、サーバーコンテキストのシリアル化コードを認識させ、新しいアイテムが追加されたときに ID だけでなくオブジェクト全体を送信することです。これは、別の A に追加されたときに、同一の B 全体が不必要に転送される可能性があるため、最適ではありません。また、シリアライゼーション プロセス全体にコンテキストを伝達する必要があるため、サーバー コードがさらに複雑になります。

これにアプローチする方法についての考えや提案はありますか? Backbone.Marionette または Backbone.Relational が機能する限り、変更が必要になる可能性のあるソリューションを受け入れます。

0 投票する
1 に答える
3902 参照

javascript - Backbone.MarionettevsBackbone-ボイラープレート

私はBackboneを初めて使用し、開発へのアプローチ方法を決定しようとしています。

現時点では、バックボーンボイラープレートよりもbackbone.marionetteを使用するのはいつかと思います。

私が言えることから、マリオネットははるかに規範的ですが、これはほとんどの人がここで開発に取り組む方法ですか?

0 投票する
2 に答える
25606 参照

backbone.js - マリオネット レイアウトとリージョンの違いは何ですか?

Marionette は、RegionsLayoutsという名前の 2 つのコンポーネントを提供します。一見すると、これらは同様の機能を提供しているように見えます。アプリケーションがサブビューを配置するためのページ上の場所に加えて、追加のイベント バインディング フェアリー ダストです。

フードの下を見ると、各コンポーネントが非常に異なる方法で実装されていることは明らかですが、なぜ、いつ一方を他方の上に使用する必要があるのか​​ わかりません. 各コンポーネントはどのようなユースケースを想定していますか?