問題タブ [backbone-events]
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.
javascript - アンダースコア/バックボーンの動的オブジェクトへのイベントのバインド
underscore.js / backbone.jsで、プロトタイプ化されていないオブジェクトやdomオブジェクトではないオブジェクトのカスタムイベントをリッスンする方法を理解しようとしています。
例えば:
モデルはおおよそ次のようになります。
エラーは次のとおりです。
もちろん、オブジェクトにバインドがないことは理にかなっていますが、誰かがこれに対する良い解決策を持っていますか?
どうもありがとうA
javascript - Backbone.js のネストされたビューのイベント
DashboardView
複数の をインスタンス化するというビューがありますWidgetView
。各ウィジェットには、独自のイベント バインディングが必要です。私が知る限り、ビューがレンダリングされて親ビューに追加されると、これらのバインディングは失われます。
このようにする.config
と、ウィジェットの要素のクリック イベントが失われます。子ビューのイベント ハンドラーが正しくチャネリングされるようにしながら、ネストされたビューを親に混在させるより良い方法はありますか?
この問題に対して私が見た 1 つの解決策は、この記事にあります。これは正しいように見えますが、これを解決するよりエレガントな方法があるかどうかに興味があります。
backbone.js - クリックしたアイテムに対応するモデルのIDを見つける方法は?
クリックしたアイテムのIDを知る方法は?私のコードを以下に示します。
およびテンプレート
編集機能で使用するIDが必要ですが${id}
、テンプレートから取得できません。これらの手順を実行しましたが、取得できませんでしたか?${id}
テンプレートからクリックされたアイテムを取得する方法は?
javascript - バックボーン ビューが DOM に挿入されたときにメソッド コールバックを指定する方法は?
ビューが DOM に挿入されたらすぐに、レイアウト スクリプトを実行する必要があります。そう...
問題は、新しいウィジェットをいくつかの異なるビューに挿入し、このスクリプトをいくつかの異なる場所で再呼び出しする必要があることです。これは DRY ではありません。isotope
View クラスでをどのように定義できるのか疑問に思っています。
「.widgets」への追加を監視するイベント リスナーを定義し、スクリプトを実行するのは良い考えでしょうか? DOM に追加されたときにスマートなビューを構築する組み込みの方法はありますか?
(さらに言えば、View が DOM から削除されたときのコールバックを定義することも役に立ちます。)
jquery - バックボーンビューの変更を監視しますか?
バックボーンビューがあり、elのコンテンツを定期的に置き換えているとすると、新しく調整されたelコンテンツに対してイベント以外のアクションを再実行するにはどうすればよいですか?例えば; コンテンツを置き換えて、すべてのリンクでライトボックススクリプトを使用するようにしたいとします。スクリプトを通常どおりに添付するには、レンダリングで次のようにします。
ただし、コンテンツの置き換え後は、再度実行する必要があります。elの内容がいつ置き換えられるかが必ずしもわからない場合、どのように再実行しますか?そのために委任できるイベントを見つけることができないようです。準備ができて、すべてのサウンドをロードして変更し、機能するようにしますが、どれも機能しません。理想的には、イベントハッシュに入れて、置換のたびにそれらを実行するメソッドを呼び出すことができるものが必要です。
javascript - バックボーンビューイベントは、再レンダリング後に機能しません
私は髪を引っ張っています。最もばかげたことをしない限り、ビューが再レンダリングされた後、マウスイベントをバックボーンビューで機能させることができないようです。
私は実際にこれを持っていましたが、最新のバックボーンに更新して新しいdelegateEvents()
機能を使用することにしました。
プロジェクトIDの構造は次のとおりです。
タブコレクションには、すべてのタブを管理するためのメインタブビューがあり、タブごとに新しいモデル/ビューを作成し、タブが読み込まれるたびにリスナーにタブビューを再レンダリングさせます。タブビューが再レンダリングされると、その不自然なjQueryステートメントをそこに配置しない限り、マウスイベントは機能しなくなります。
ここにタブビューとレンダリングがあります(iveはそれをかなり取り除きました)
バックボーンマウスイベントがまったく発生しない理由を誰かが考えることができますか?それは、それらがDOMにないためですか?これがバックボーンが特に役立つところだと思いましたか?...
javascript - backbone.js がビューの子全体でイベントを共有しないようにする方法
リストを作成するためのマスター ビューがあります。このビューには、「さらにアイテムをロードする」ためのクリック イベントがあります。
マスター ビューを拡張する 2 つのサブ ビューがあります。
私の問題は、1 つのビューの [さらに読み込む] ボタンをクリックすると、他のビューに影響することです (以前に読み込まれた場合)。別のビューを初期化する前にビューを閉じる必要があることは理解していますが、私のビューはマスター ビューを拡張しているため、このメソッドは機能しません (マスター オブジェクトを閉じ、他の子ビューは初期化されません)。
私のマスタービュー:
.increase は、api パラメータを増やすためのカスタム メソッドであることに注意してください。
子ビュー:
.parent は、マスター ビューのメソッドを呼び出すカスタム メソッドであることに注意してください。
そのため、ビューの load-more ボタンをクリックすると、すでに初期化されている場合は、マスター ビューから拡張されたすべてのビューで loadMore メソッドを呼び出そうとします。
私は何をすべきか?
backbone.js - backbone.js: 親ビューからカスタム ビューをトリガーできず、子ビューをバインドできません
render メソッドで新しいバックボーン ビューを作成する親バックボーン ビューがあります。
appView
カスタム イベントをトリガーしてバインドできるようにしたいのですが、previewDataView
これは可能ですか? previewDataView
私がそれを試みたとき、イベントを受け取りませんでした。考え?
javascript - 動的要素へのバックボーン バインディング
コードにスライドショーがあり、画像の数に基づいてボタンを生成したいと考えています。
各要素の画像を繰り返し処理しています。
次のようにイベントを添付します。
ここで、li (小さな円) をクリックすると、その配列内の特定の画像をレンダリングしたいのですが、Backbone を使用してこれを行う方法がわかりません。通常、ボタンから rel を解析し、それに応じてロードしますが、バックボーンでその情報にアクセスする方法や、これを行うためのより良い方法があるかどうかはわかりません。
現在、画像を自動回転する画像回転機能があります。
そして今、私は changeImage 関数が必要ですが、これは私が迷っているところです:
javascript - Backbone.js - 一時的に無効にする (内のイベント) ビュー
TL;DRビューを一時的に無効にして、別のビューを安全にロードし、ロードされたビューを安全に閉じて元のビューに戻るにはどうすればよいですか?
次のシナリオがあります。
- ユーザーが
/search
ロードするものを開きますSearchView
。 - ユーザーはボタンをクリックして検索を実行します。
- 内部のコレクション
SearchView
はデータで満たされ、UI はそれを反映するように更新されます。 - ユーザーが結果項目をクリックします。
SearchView
無効になっています(無効にする必要があるだけevents
ですか?)。ItemView
ロードされ、アイテムの詳細が表示されます。- ユーザーがボタンをクリックして閉じる
ItemView
。 SearchView
再び有効になります。
ポイント 5 と 8 を達成するための最良の方法は何ですか? SearchView.unbind()
(ポイント5の場合)とSearchView.bind()
(ポイント8の場合)をコールすることを考えています。
おまけ:解決策がスタックのようなものであるとよいでしょう。つまり、ビュー A は、ビュー C をロードできるビュー B をロードします。ビュー C を閉じると、ビュー B が復元されます。