問題タブ [backbone-relational]
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 Relational を使用して初期 JSON から多対多の関係を自動作成する方法は?
多対多の関係に関するドキュメントの例では、人物が作成された後に会社が追加されることを想定しています。
しかし、すでに企業のリスト (企業 ID) を含むサーバーから個人データが取得されている場合はどうなるでしょうか。
次のコード (または同様のコード) が可能になるように例を変更することは可能ですか?
1対多の関係で行うのと同じ方法でこれを達成しようとすると、失敗します:
これがあなたが遊ぶことができるフィドルです:http://jsfiddle.net/ymr5Z/
backbone.js - コレクションのバックボーン リレーショナル関数
私はやや大規模なバックボーン ベースの Web アプリを実行しており、バックボーン リレーショナルを使用しています。一対多の関係でカスタム関数を使用できるかどうか疑問に思っていました。
IE 国モデルがあり、それが複数のメタデータ モデル (それぞれが型属性を持つ) に関連している場合、関連するコレクションを特定の型にフィルター処理する関数を作成したいと考えています。これは最良の例ではありません (プロジェクトの詳細について公に言及したくありません) が、ここに私が作成したサンプル コードを示します (100% 正しいとは限りませんが、アイデアは理解できます)。
あなたがこれを行うことができるかどうか誰かが知っていますか?これを行う別の良い方法があれば (同じコレクションに異なる型を保持しながら)、知りたいです。
ありがとう!
javascript - バックボーン js コードの匂い - サブビューを埋め込むより良い方法は?
バックボーン リレーショナル モデルを使用してバックボーン アプリを構築しています (ただし、この質問には関係ありません)。
基本的に、非表示の div を表示する編集ボタンがあります。非表示の div id 内には、DetailsView
テーブル要素をレンダリングしてユーザーのリストを作成するサブビュー ( と呼ばれる) があります。私のモデル(アプリ全体)はおおよそ次のようになります。
私のメイン ビュー (上記のモデルのコレクションによって供給される) では、ユーザーが編集ボタンをクリックすると、これがトリガーされます。
detailViewContainer
コードの臭いは、それを明示的に宣言しなければならないという事実から来ています。
もともと、私の forEach ループでは、コードを含むビューで別の関数を呼び出して、DetailsView
. ただし、のコンテキストが失われますthis
。
私の元のコードは次のようになりました。
では、 のrenderDetailsView
コンテキストが失われ、 を適切な DOM 要素にthis
追加できませんでした(コンテキストがループに入ったためにウィンドウになったためDetailsView
、ビューはすべてのtbody.users
DOM 要素に追加されます)。this
a を明示的に宣言する必要があるのはハッキリしているように思えます。ウィンドウ全体ではなく、メイン ビューを指すコンテキストdetailsViewContainer
を保持できるようにしたいと考えています。this
DetailsView
テンプレートは単なる<tr><td></td></tr>
要素のセットです。を作成せずにこのビューを埋め込むより良い方法はありdetailViewContainer
ますか?
(考えられるオプションの 1 つは、all 自体DetailView
から返されたコレクションをループすることでしthis.model.get('users')
た...それは良い考えですか?)
javascript - Backbone.js - 親の「コレクション」ビュー内のすべての子ビューにアクセスする
.delegateEvents()
ページから親ビューを削除してから元に戻した後、イベントを再委任するために、親「コレクション」ビュー内のすべての子ビューを呼び出す必要があります。
これを行うには 2 つの方法がありますが、どちらも適切な慣行という点で私には正しくないように思えます。
- )が親
addOne(
ビューで呼び出されるたびに、作成されたばかりの子ビューをリストに保存します。後でビューがページに再度追加されたときに、イベントを再委任する必要がある場合。配列を使用してそのリストをスクロール.delegateEvents()
し、各子ビュー アイテムを呼び出します。このアプローチの問題は、ビューがすでに子ビューに影響を与えるバックボーン認可の方法を持っている場合に、ビュー内のすべてを保持するために別の配列を作成することです。this.collection.each()
- ビュー内の組み込みを使用して、
View.collection.each()
各子モデルをスクロールします。各モデルで、対応するビューがそれ自体を呼び出すイベントをトリガー.delegateEvents()
します。このアプローチの問題点は、純粋にビュー指向のアクションがモデルを介してルーティングされていることです。
これらのアプローチのいずれかが良いですか、それともこれを行うべきより良い方法はありますか?
本当にありがとう!
backbone.js - 同じバックボーン リレーショナル モデルを使用して、データの事前ロードとアドホック ロードの両方を処理する
モデルのツリーがあり、事前に 1 つの大きな JSON リクエストからモデルをロードし、ツリー全体を保存したり、ツリー全体をリロードしたり、それぞれの 2 つのバージョンを作成したりせずに、一度に 1 つずつ変更できるようにしたいと考えています。モデル。
私が遭遇した問題は、各サブモデルに keySource がある場合、事前にロードされませんが、keySource がないと個々のロードまたは保存を実行できないことです。
これを回避する方法が見つからなかったので、先行ロードのコンテンツは完全に接続されたオブジェクト ツリー全体です (ID リストはありません)。それが問題ですか?それとも、何らかの形で接続されているモデルの 2 つのバージョンがないと、私がやろうとしていることは不可能ですか?
javascript - サインインおよびサインアウト機能のための Backbone.js アーキテクチャ
Backbone.js でログイン/ログアウト コントロールの機能を設定する方法が少しわかりません。
これは私が考えていることですが、これで問題ないのか、このアーキテクチャに問題があるのか わかりません。
- は
Model
現在のユーザーです。を実行したときにモデルがHTTP 404
応答を取得した場合fetch()
、「現在のユーザー」は匿名ユーザーである必要があります。そうでない場合Model
、現在のユーザーの情報が保持されます。 View
: _- 現在のユーザーが「匿名」の場合、ユーザー名とパスワードの入力ボックスが表示されます。そして「ログイン」ボタン。
- 現在のユーザーが有効なユーザーである場合、ビューには現在のユーザーのユーザー名と「ログアウト」ボタンが表示されます。
「ログイン」と「ログアウト」ボタンが押されたときにモデルをどうするかわかりません。モデルの機能を介してログインとログアウトを行う必要がありfetch()
ますか、それとも、これらのアクションが別の POST リクエストをトリガーし、成功した結果が に入力されるか、別の操作を要求するModel
必要がModel
ありfetch()
ますか?
ご意見をお待ちしております。どうもありがとうございました。
javascript - サブモデルをバインドしてバックボーン/マリオネットで表示する
BankAccountモデルを持つUserモデルがあり、モデル属性がUserモデルに設定されているビューがあり、そのビューのテンプレートで銀行口座の属性を参照しています。
bankAccountを更新した場合、ビューは変更を認識しません。
ユーザーモデルの初期化に以下を追加しようとしましたが、どちらも機能しませんでした。
助言がありますか?また、これらのモデルはどちらも、役立つ場合はバックボーンリレーショナルを使用します。
backbone.js - Require.js を使用したバックボーン リレーショナル (AMD)
私はrequire.jsを使用する予定のかなり大きなWebアプリケーションに取り組んでいるので、プロダクションの準備ができたらコンパイルできますが、バックボーンリレーショナルを使用したいと思います. backbone-marionette も使用する予定ですが、モジュールの定義関数にどのように含めるかはわかりません。
誰もこれについて経験がありますか?
javascript - collection.modelsの空の配列を出力するバックボーン?
問題がある場合
console.log apples
models: Array(10)
オブジェクト内にリストされたApplesコレクションを出力します。
ただし、console.log apples.models
空の配列を出力します。
なぜこれが起こるのですか?
前もって感謝します。
javascript - jasmine を使用したバックボーン リレーション モデルのテスト
ユーザー用 (1) とメッセージ用 (2) の 2 つの単純なフィクスチャ ファイルがあるとします。
メッセージのバックボーン モデルは次の (3) です。
「メッセージフィクスチャ」をロードすると、メッセージモデルで指定されたユーザーに関する関連情報も取得したいと思います。
ジャスミン テスト スイートを使用して、スペック ビュー (4) でこの目標をアクティブにする適切な方法は何ですか?
詳細については、(4) のコメントを参照してください。
(1)
(2)
(3)
(4)