問題タブ [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.
jquery - Meteor が jQuery をロードする方法に奇妙な点はありますか?
Meteor を使用すると、標準の jQuery 機能に問題が発生します。私のメインの「クライアント/サーバー」JS ファイルは次のようになります。
アプリをロードすると、「バー」は正常にログに記録されますが、.append は機能しません。ページの読み込み後にコンソールで同じ .append を呼び出すと、正常に動作します。(同様に、Meteor 以外の設定で同じコードを実行すると、正常に動作します。)
実際に実行したいコードは次のようになります。
ここで機能しないメソッドは、View の render です。render メソッドの console.log ビットは問題ありませんが、jQuery の追加は機能しません。最初は、Backbone の使用方法に問題があるのではないかと思っていましたが、代わりに Meteor/jQuery の問題ではないかと考えています。
backbone.js - オブジェクトのサブセットの処理
オブジェクトのサブセットを処理するための適切なパターンは何ですか。
ロッカーのリストがあるとします。各ロッカー内にはアイテムのセットがあります。UI はこれに似たものです。アスキー アートが浸透することを願っています。
ロッカー #2 が選択されています (アクティブ)。私が行ってきたことは、ロッカー #2 がアクティブ化されたときにコールバックを設定し、次に ItemCollection.fetch({ data: { lid: LOCKER_ID }}) を実行して、表示の準備ができているアイテムのサブセットをフェッチすることです。これはバックボーンのようには感じません。
より良いアプローチは何ですか -
- モデルのサブセットをロードする - もしそうなら、それを行う方法の良い例はありますか?
- すべてをロードしてから、コレクションでバックボーン フィルタリングを実行しますか?
- おそらく適切なページネーションの例ですか?
javascript - Backbone.View:さまざまなモデルに関連するさまざまなビューを削除します
またはコレクションthree different views
に関連するものを表示する必要があります。
このタスクを実行するために、次のコードを記述しました。(*)
それがこれを作る正しい方法であるかどうか教えてください、とにかくそれはうまくいきます。three different model
ここに私の問題があります。
このビューの1つでは、たとえば、これに関連するすべてのデータを削除するように注意するサーバーに対してfirstView
、を実行することが可能です。DELETE request
three view
次に、3つのビューを削除する必要がfirstView
ありますが、他の2つのビューにアクセスできません。
1)このタスクを実行するにはどうすればよいですか?
2)実装を再設計/改善する必要がありますか?
(*)
PS:
_idは、コレクションまたはモデルのurlパラメーターを作成するために使用されます
model1を削除すると、collection2とcollection3に関連するview2とview3が削除されます。
javascript - 複数のビューをレンダリングして削除しています…
私が十分に明確であることを願っています。そうでない場合は、説明を求めてください。
メイン テンプレートに合わせてエンド クリエイト ビューを削除したいのですが…</p>
次の実装を試みましたが、失敗しました。
コメントからわかる問題はview1.js
私のjsコンソールから動作します:
私の目標は次のとおりです
。1) mainView.js モジュールをロードするときに、ビュー (view1、view2、view3) をアタッチするテンプレートを作成したい
2) ビューがアタッチされているすべての DOM のビューの削除をトリガーするとき、削除する必要があります。
3) モジュールを再度呼び出すとmainView.js
、テンプレートを再作成する必要があります。
提案する他のアイデアがある場合は、投稿してください。
@nikoshr のおかげthis.$el
で、 inview1.j
が定義されており、render を呼び出すと、view1.js
適切this.$el
に塗りつぶされます
が、ドキュメントの本文には添付されません。
私のに追加または同様のjqueryメソッドを使用せずにそれを作成するにはどうすればよいmain-template.html
ですか?
ここで私のレンダリング機能:
backbone.js - 単一のビューでリセットコレクションをレンダリングするBackbone.js
リセットプロパティを使用した選択ボックスを使用して、単一のビューからフィルター処理されたコレクションをレンダリングしようとしています。最初の問題は、選択ボックスとレンダリングされたコンテンツが機能するためにすべて同じdivに表示される必要があることです。これは正常ですか?2番目の問題は、フィルタリングされた結果のみを表示する代わりに、フィルタリングされたコレクションを置換するのではなく、レンダリングされたコンテンツの最後に追加することです。._each関数のappendは、フィルタリングされたアイテムのみを追加するため、機能しないことを知っています。コレクション全体の終わり。以下に私のコードサンプルを示します。
javascript - 特定の object_id のコレクションをフェッチしてレンダリングする最良の方法
特定のコレクションを取得できるシンプルなアプリを実装しようとしていobject_id
ます。
サーバーからのGET response
は次のようになります。
私の目標は
、ユーザーが を選択したときにコレクションをレンダリングすることobject_id
です。
私のコードの出発点は次のとおりです。
私の質問は次のとおりです:
* 最善の方法は何ですか:
1) を設定してobject_id value
、MyModel
2
) fetch
MyCollection でトリガーし、
3) ?*でrender
関数をmyView
トリガーするか、私の目標をアクティブにしますか?
PS:
私の基本的なコードは次のようになります。
javascript - バックボーン-jsonからコレクションにデータを入力し、ビューを更新します
コレクションにJSONファイルのデータを入力しようとしています。私は背骨の初心者なので、私の問題はおそらく簡単に解決できます。しかし、これは一日中苦労してきました-それで今私は指導を求めています。
アンケートを作成していて、ローカルに保存されているJSONファイルから質問をロードしたいと思います(後でサーバーから質問を取得します)。
コレクションにデータが入力されているかどうか、またはビューが更新されないことが問題であるかどうかはわかりません。私はたくさんのチュートリアルを読み、さまざまな場所からいくつかのアイデアを得ました。
さて..これは私のjavascriptコードです:
そして私は次のHTMLコードを持っています:
JSONファイルは次のようになります。
ボーナスの質問:私はfirebugを使用していますが、このようなものをデバッグするのは非常に難しいと思います。たとえばconsole.log(Questions);
コンソールに書き込むと、ReferenceErrorが発生します:質問が定義されていません。何故ですか?
更新:問題は解決しました。以前はWebサーバーを使用していませんでしたが、現在は使用しています(ブラウザーでファイルを開いただけです)。コードは正常に機能します。
backbone.js - モデルを拡張するための最良の方法
Backbone.jsのドキュメントによると、Model-parseは次のことを行います。
parseは、モデルのデータがサーバーからフェッチおよび保存で返されるたびに呼び出されます。
すでにロードしたモデルを拡張するには、を使用しますModel.parse()
。これを実現するfetch
には、を使用してデータを追加リクエストし、そのデータを使用して既存のモデルにプロパティを追加します。
例:
フェッチオブジェクトは{age: 19}
、パーサーが{age: 19, isAdult: true}
保存要求を実行すると、PUT要求には、不要な他のパラメーター(isAdultなど)もあります。元のモデルが欲しいのですが(PUTリクエストに追加のパラメーターはありません)。
バックボーンで私の目標を達成するための最良の方法は何ですか?
backbone.js - Backbone.js: ビューをキャンセルするにはどうすればよいですか? 親要素をテンプレートに追加します。
id
Backbone.js の View オブジェクトには、tagName
、などのパラメータがあることは知っていますclassName
。
これらを挿入テンプレートの親要素に使用します。それらを設定しないと<div>
、テンプレートの親としてテンプレートに a が追加されます。
しかし、親が必要ない場合があるので、本当にイライラします。テンプレートに必要なものはすべてありますが、キャンセルするにはどうすればよいですか?
backbone.js - Backbone.ViewとBackbone.Modelのインスタンスが多すぎます
他のビューのレンダリングを担当するメインビューがあります…。これが完全なコードです(1)(2)(3)。
ビュー(View1、View2、View3)を初めてロードするときは、すべて問題ありません。
次に、this.optionsを変更してビューをリロードしようとすると、どうやら問題ないようです。
しかし、ゾンビビューがいくつかあることに気付きました…、つまり
、メモリ内の以前のビューのインスタンスを意味します。
私はこのコードの平和を使用してこれを発見します…</p>
cid
ビューを再ロードするたびに、異なるCIDを持つ新しいビューが生成され、メモリにとどまることがわかりました。例
等々...
私のデザインの何が問題になっていますか?どうすれば修正できますか?
(1)エントリポイント
(2)mainApp
(3)