問題タブ [backbone-views]
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 - バックボーン - 条件に応じて tagName を変更する
条件に基づいて Backbone ビューの tagName を切り替えようとしています。
最初は、「div」と言うデフォルトのタグ名を設定できると思っていました(これがデフォルトであることを認識しています)。その後、ビューの初期化関数で条件を確認してタグ名を変更しましたが、残念ながらうまくいきませんでした。
これが私のビューコードです(coffeescriptで書かれています):
このコードでは、tagName は変更されず、常に div のままです。テンプレートが正しく切り替えられている間。
どんな助けでも大歓迎です。乾杯!
javascript - バックボーン ビューで複数のイベント タイプをバインドする
バックボーンの複数のイベント タイプを 1 行でバインドできるかどうか疑問に思っていました。
次の点を考慮してください。
基本的に私が疑問に思っているのは、次の行に沿って、「クリック」と「タッチスタート」のイベントバインディングを1行に結合できるかどうかです:
任意の提案をいただければ幸いです。
backbone.js - Backbone.jsビューの特別なオプションの何が特別なのですか?
バックボーン.jsドキュメントによるとView
:
渡された場合、ビュー
model
に直接アタッチされるいくつかの特別なオプションがあります:、、、、、、、 および。collection
el
id
className
tagName
attributes
el
、id
&className
は何でもラッピングするために使用されますがrender()
、
オブジェクトの中でどれほど特別 ですか?それらはViewメソッドで使用されていますか?model
collection
View
ありがとうございました。
backbone.js - バックボーン/バックボーン-リレーショナルアプリのビュー+サブビュー
私はバックボーン、バックボーンリレーショナル、およびスタックエクスチェンジを介した読み取りからWebアプリの構築について多くのことを学んでいます。最初に、コミュニティに感謝します。
今、私は、ネストされたモデルとサブビューに関連するこの現在の問題を理解しようとすることに固執しています。
このチュートリアルを拡張して、各ワインの「チェックイン」を追跡することにより、バックボーンリレーショナル、ビュー/サブビュー、およびイベント処理について学習しようとしています。
サーバー側を拡張して、次のようなチェックイン用の適切なJSONとバックボーンリレーショナルモデルを返しました。
そして、そのようなワインモデル:
CheckInListViewとCheckInItemView(WineListViewとWineListItemViewと同じ)を作成し、WineViewRender関数を使用して次のようにCheckInをレンダリングしました。
また、wineview内に、チェックインを作成し、特定のイベントに関連付ける新しい関数を作成しました。
}
わかりました-まだTL/DRを実行していない場合-これはすべて、UIの観点からは正常に機能しているようです-つまり。すべてが正しくレンダリングされ、Dbに保存されます。
しかし、コンソールで、新しいチェックインを(上記のconsole.logsの間で)プッシュすると、チェックインリストビューの追加バインディングがwachボタンを押すと複数回呼び出されることに気付きます-これにより、ビューの実行方法に何か問題があると思いますイベントの伝播について基本的なことを理解していません。
なぜこうなった ?予想される動作ですか?私は正しくやろうとしていることに近づいていますか?
あなたの助けではないにしても読んでくれてありがとう。
==
add(およびその他の)イベントにバインドされているCheckinListViewおよびCheckInListItemビューの関連部分は次のとおりです。
==============================================
イベントのバインドとビューの終了に関するコメントは、これをデバッグするための正しいヒントでした。
1)ネストされたビューを適切に閉じてバインドを解除していなかったため、DOMに何も存在していなくても、ゴーストイベントのコンシューマーが残っていました。
2)サブビューでのみ何かを実行したい場合にのみ、イベントをバインドする必要があります。
例-サブビューにチェックボックスがある場合、メインビューにはモデルがあるので、メインビューでサブビュー変更イベントをバインドし、そこでイベントを処理できます。これが「正しい」方法かどうかはわかりませんが、私がしなければならないことにはうまくいきます。(mm ..スパゲッティコードはとてもおいしいです)
3)これに苦労することで、UXについてもう少し考え、UIを簡素化することができました。
4)JSON呼び出しですべてのデータをネストすることにより、サーバーへの呼び出しを「保存」しようとしていました。そして、これをやり直すとしたら、データをネストするのではなく、ワインIDをチェックインIDに関連付けて、タスクが選択されるとコレクションが読み込まれる別のコレクションを作成することで、バックエンドでデータを処理します。 -これは好ましい方法ではないと思いましたが、多くの人がそうしているようです。
上記の「正しい」方法の質問についての考えや、「シンプルなバックボーンアプリ」を超えたチュートリアルを誰かが指摘できる場合は、引き続き歓迎します。
backbone.js - イベントが発生したときのelは未定義です
次のような1つのビューからイベントをトリガーします。
別のビューで同じイベントにバインドします。
私の関数では、現在のインスタンスのelプロパティを取得しますか?
私は何を逃したのですか?
backbone.js - イベントが 2 回発生する
次のようなビューを宣言しています。
次に、ここで確認できるように、このビューの 2 つのインスタンスをインスタンス化します: http://cl.ly/H5WI
問題は、選択したイベントが発生したときに、選択した関数が 2 回呼び出されることですか?
jquery - バックボーン.jsビューでのjqueryカスタムウィジェットの使用
MVCにbackbone.jsを使用するアプリから呼び出されているカスタムjQueryウィジェットがあります。カスタムjQueryウィジェットでバックボーンイベントパターンを使用するにはどうすればよいですか?
ありがとう。
ruby-on-rails - テンプレートを挿入しないBackbone.jsビュー
バックボーン/レール アプリケーションのユーザー ビューを作成しています。新しいビューを追加しようとしています:
/views/users/edit.js.coffee
テンプレートは /templates/users/edit.jst.eco にあります
私のルーターは /routers/users.js.coffee で次のようになります。
インデックス ビュー/テンプレートは正常に機能し、ビューはコンテナー div に挿入されています。UsersEdit ビューの tagName を「li」に変更すると、DOM に li 要素が表示されますが、テンプレートが読み込まれていません。構文の問題だと思いますが、コンソールにエラーはありません。
更新: 明確にするために#container
、空の要素アイテムが表示されるため、ビューが追加されています。テンプレートのレンダリングに問題があります。
template: JST['users/index']
UsersIndex ビューで参照すると、すべて正常に動作します。template: JST['users/edit']
両方のテンプレートが同じフォルダーにあるにもかかわらず、何らかの理由で機能しません。また、編集テンプレートに無効な構文を配置できますが、エラーはスローされないため、検出されません。
更新 2: 次のビュー/テンプレートは問題なく動作します。
テンプレート/ユーザー/index.jst.eco
javascript - 2つのビュー、1つのモデル-両方のフェッチエラーを処理する方法は?
2つのビュー間で共有されるモデルが1つあります。両方のビューでエラーを表示するfetchメソッドにエラーを付加したい。
しかし、model.fetch({error:...})を実行すると、そのエラーは1つのビューのみを参照します。
これを行うための最良の方法は何ですか?
javascript - 同じイベントに2つのハンドラーをアタッチするにはどうすればよいですか?
次のように、ハンドラーをバックボーンビューにアタッチできます。
しかし、同じイベントに複数のハンドラーをアタッチしたい場合はどうなりますか?
次のようなカスタムハンドラーを作成できます
しかし、これは理想的ではないようです...