問題タブ [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.
backbone.js - Backbone.js: ビュー全体でイベントをバインド/バインド解除する
ここでは、オブジェクトがイベントの発生とそれらのイベントのサブスクライバーを管理するパターンを示したDerick Bailey によるイベント アグリゲーター パターンを使用しています。
あるビューでイベントをトリガーし、別のビューでそれらをサブスクライブしていたところ、すべて正常に機能していました。この問題は、2 つ以上のビューがイベントにサブスクライブし、ビューを破棄するときに、ビューの 1 つがイベントのサブスクライブを解除したときに発生しました。これにより、他のすべてのビューもイベントからサブスクライブ解除されます。
これに対する回避策はありますか?
アップデート
これが私のビューで使用しているコードの一部です。
backbone.js - Backbone.js - 新しい投稿を作成するコードはどこに行くのですか?
Post モデル、PostList コレクション、および PostView + PostListView を持つ簡単なサンプル Backbone.js アプリを作成しようとしています。フォームに投稿できるシンプルなもので、投稿が投稿のリストに追加されます。
誰かが投稿フォームで送信をクリックすると、PostList コレクションのビューである「PostListView」でイベントがトリガーされます。新しい投稿モデルをどこで作成してコレクションに追加しますか? ビュー自体にこのコードを記述しますか? それとも、ビューはこれを行うコレクション メソッドを呼び出しますか? カスタム コレクション メソッドを作成することもできますか? もしそうなら、どうすればそれらをビューから呼び出すことができますか?
Rails のバックグラウンドを持っているので、ビュー (Rails コントローラー) ではなくコレクション/モデルにコードを配置する傾向がありますが、ビューからカスタム コレクション イベントを呼び出す方法がわかりません。
コードは以下の通りです。助けてくれてありがとう!
PostListView.coffee:
PostList.coffee:
javascript - 複数の属性の変更をBackbone.jsモデルにバインドする正しい方法
次のコードがあり、変更を単一の属性「attribute_1」にバインドします。
2つの属性をバインドするにはどうすればよいですか?これは機能しません:
これもしません:
javascript - バックボーン モデルは変更されません
私のアプリはバックボーンを使用しています。ユーザーが変更できるモデルがあります。このモデルは、変更する前に検証する必要があります。変更されている場合は、関数が呼び出されます。ユーザーが保存をクリックすると、モデルが変更された場合にのみモデルが保存されます。
私の問題は、変更イベントが発生したときにモデルが変更されていないため、保存されないことです。
コードは次のとおりです。http://jsfiddle.net/keepyourweb/jQL8V/
javascript - ハッシュなしでバックボーンルートを取得することはできませんか?
ブラウザがキャプチャして処理できるブックマーク可能なURLが必要です。Backbone.history.start()を使用するだけの場合は、 /#accountsなどのハッシュURLを使用できます。
しかし、ハッシュのないURL、la /accountsが必要です。しかし、Backbone.history.start({pushState:true})を使用してこれを機能させることはできません(他の人が説明しているように)。私のルートは単純で、ドキュメントから直接取得されます。
Chromeを使用しています(FFでも試してみました)。動作は、/accountsリクエストがサーバーに直接送信されることです。最初にバックボーンによって傍受されない。誰かがこれに遭遇しましたか?BackboneでハッシュレスURL処理を取得するにはどうすればよいですか?
前もって感謝します
javascript - BackboneJSイベントコレクションの構築中にエラーが発生しました-newEvent()がエラーをスローします
これは、コレクションの標準的な使用法とほとんど同じように見えますが、機能しません。ドキュメントレディ関数内に次のコードがあります。
ChromiumとFirefoxでテストしましたが、FFはより冗長です。
私は何が欠けていますか?
補足として、もう少しコンテキストが必要な場合は、ChrisStormのチュートリアル/チェーンに従おうとしています。
関連するソフトウェアバージョン:
- jQueryJavaScriptライブラリv1.7.1
- Backbone.js 0.5.3
- Underscore.js 1.2.2
- Chromium 14.0.835.202(開発者ビルド103287 Linux)Ubuntu 11.10
- Firefoxは8.0、Ubuntu 11.10、64ビットです
更新:もう少しデバッグすると、エラーがスローされた時点で、this.modelに値がfunction Event() { [native code] }
あり、呼び出しによってnew Event()
さらにエラーがスローされることがわかりました- TypeError
。では、イベントの作成の何が問題になっていますか?
jquery - Backbone.js ビューを使用してどのようにイベントにバインドしますか?
私は backbone.js が初めてで、KnockoutJS から離れています。イベントバインディングが機能しません。
HTML が次のように与えられた場合:
上記の何らかの理由で、スパンをクリックすると、イベントが発生しません。アイデア?
ありがとう
javascript - このテストを実行すると、なぜこのシノンスパイが呼び出されないのですか?
私はバックボーンモデルを持っています:
そして、 jasminとsinon.jsを使用してそのコードのテストをいくつか行っています
ブラウザで使用すると動作するようですが、テストに合格できないようです。誰かが私を啓発できますか?
javascript - バックボーン動的に作成された「el」イベントをバインドしない
ここにいる他の多くのユーザーと同じように、私はel
イベントに問題があります。私の状況では、デフォルトのel
(ちょうど<div></div>
)設定を使用する、jQueryセレクターを使用してセレクターtagName
に設定el
する、DOMの準備が整うのを待つなど、複数のソリューションをテストしました。これらの各ソリューションは、イベントとデフォルト以外のすべてのバインドに失敗しel
、tagName
htmlの生成に失敗しました。関連コード:
意見
ビューを呼び出す関数(別のビューから抽出)
少し混乱しています。設定el
しましたが、イベントが作成されないか、バインドされません。DOMがロードされてコンストラクターに渡されるのを待ってみましたel
が、成功しませんでした。私の最もありそうな明らかな間違いについての助けをいただければ幸いです。
svg - SVG 要素である el に適用されるバックボーン イベント
クリックに応答したいテキストを含む SVG キャンバスがあります。以下のコードは仕事を成し遂げていません:
これは、別のビューの render 関数で呼び出されています。
それは問題なく表示され、これを for ループの最後に投げると:
その後、クリックは機能しますが、ビューに関連付けられたバックボーン モデルにアクセスする必要があるため、直接の JQuery イベントよりもバックボーン イベントを優先します。