問題タブ [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.

0 投票する
2 に答える
581 参照

backbone.js - バックボーンを使用したネストされた属性のテンプレート

Appointmentモデルがあり、その各インスタンスにはClient. 予定を編集するための私のテンプレートは次のとおりです。

私の問題は、Client属性がサーバーに正しく渡されていないことです。保存時にサーバーに渡される JSON オブジェクトは次のようになります。電話番号を持つクライアントがいるふりをしましょうが、555-555-5555それを変更し555-555-1234てフォームを送信します。

無関係なフィールドの多くを省略しましたが、私の言いたいことがわかると思います。client_phoneから555-555-5555に変更しまし555-555-1234たがclient、JSON オブジェクト内のオブジェクトの電話番号は変更されていません。どうにかしてその電話番号を変更する必要があります。

電話番号フィールドのように、これらのフィールドを実際に「取る」ようにするにはどうすればよいclientですappointmentappointment? それが違いを生む場合、私はバックボーンリレーショナルを使用しています。

0 投票する
3 に答える
207 参照

javascript - BackboneJS は、初期ロードからイベント OnAdd をキャッチします

fetch() を使用せずにコレクションを作成していますが、JSON データは既に利用可能です。

そのコレクションの各モデルには、このコレクション内のこのモデルの位置である「位置」値の設定が必要です。

私がやろうとしているのは、イベントをキャッチすることです。最初のロードでは、各モデルが JSON から構築され、コレクションに追加されます。

次に、次のようなものを作成します。

残念ながら、コレクションをバインドするイベントが見つかりません。また、このコレクションのモデルには、同じことを行う必要がある他のコレクション (...) が含まれています。

これは奇妙に思えるかもしれませんが、後で私の見解では次のようなことを実行するので、これを行う必要があります。

これが十分に明確であることを願っています。ありがとう!

0 投票する
0 に答える
864 参照

backbone.js - バックボーン リレーショナル: ネストされた配列属性の要素を localstorage から削除します

「HasMany」コメント(ネストされた配列)のRelationalModel「Todo」があります。このネストされたコレクションから特定のコメントを削除するにはどうすればよいですか? このネストされた配列に「コメント」を追加 (および更新) する方法の例も誰かが提供できれば素晴らしいことです。コレクション全体をローカルストレージに保存する最良の方法はそれですか? ネストされたコレクションから要素を削除して保存するためのすぐに使える機能がないのはなぜですか?

私は試した

this.model.destroy()

this.model.bind("破棄", this.remove)

私のCommentView内ですが、これはDOMとバックボーンの「CommentCollection」からコメントを削除するだけで、ローカルストレージからは削除しません。そのため、どういうわけか、CommentCollection と localstorage が同期されません。

localstorage の Todo は次のようになります。

コメントビュー:

0 投票する
1 に答える
1208 参照

jquery - Backbone.js で外部キー関係を持つサブモデルを読み込むにはどうすればよいですか?

これが少し複雑な場合は申し訳ありません...私はまだBackbone.jsを学んでいます...

内部にサブモデルを持つバックボーン モデルを読み込んで保存する適切な方法は何ですか? (そして、サブモデルを持っている必要がありますか?)

たとえば、(coffeescript を許してください)、次のようなものがあるとします。

私が欲しいのは、 dude.fetch() と言って、男と彼のアドレスの両方を取得することです。Backbone.sync('update',dude) を呼び出すと、男と彼のアドレスの両方を保存したいと思います。どのように?

バックエンドでは、tastypie を使用していくつかの SQLAlchemy テーブル (Django の ORM ではない) の API を構築しているため、Person テーブルと Address テーブルのリソースがあります。

Tastypie のForeignKey関数は、URLを問題のアドレスに返すマッピングを作成します。

Dude.parse() 関数をオーバーロードして Address() の fetch を呼び出してみましたが、機能せず、間違っていると感じ、さまざまな疑問が生じました。

  1. Address をネストされたオブジェクトとして含めるように、tastypie 応答を変更する必要がありますか?
  2. ネストされたオブジェクトに変更する場合、Backbone-Relational related models not being createdという質問のように、backbone-relationalを使用する必要がありますか、それともやり過ぎですか?
  3. parse()または fetch() 関数をオーバーロードするか、独自の backbone.Sync() を作成して応答を取得し、これを手動で行う必要がありますか?
  4. 1 対 1 の場合、サブモデルではなく 1 つのモデルだけを使用して、1 つの要求で情報をまとめて送信する必要がありますか?

これを行う標準的な方法はありますか?

0 投票する
1 に答える
194 参照

javascript - DOM イベントなしで Backbone.js のビューからモデルに情報を取得する方法

私は Backbone.js を初めて使用し、モデルとビューの関係の適切なアーキテクチャを理解するのに苦労しています。

入力ボックスと、その入力ボックスの内容を取得してサーバーに送信するモデルを保持するビューがあります。

私の問題は、ビューがモデル データを更新するためのリクエストをトリガーする目立たない DOM イベント ( input.change. 場合によっては、コード自体がモデルに更新をサーバーに送信するように要求する必要があります。

私はこれまで、この問題に対する 3 つの解決策を考えてきました。

  • 入力要素のkeypressイベントでモデルを更新します

  • get_input_value()ビューがモデルで初期化されたら、入力ボックスの値を返す' ' と呼ばれる関数をビューに更新/モデルに追加します。

  • アプリケーションがサーバーを更新するためにモデルを要求する必要がある場合は常に、ユーザーがビューに入力したすべての情報をモデルに更新するビュー内の関数を最初に呼び出します。

これは単純化された例であることに注意してください。ビューには子ビューも含まれており、そのすべてがユーザーが操作できる多くの要素を保持しています。サーバーを更新できるように、このすべての情報でモデルを更新する必要があります。

どんな助けや意見も歓迎します! 本当にありがとう!

編集 :::

machineghost の応答に基づいて、この問題を正しく説明していないことがわかりました。

DOM イベントがありますが、問題は、モデルを使用するビュー内から発生するとは限らないことです。ルーターまたは別のビューから発生し、グローバル イベント ハンドラーによってトリガーされる場合があります。さらに、1:1 のビューとモデルの関係はありません。このモデルは、モデルをさまざまな方法で表現する複数のビューで使用されます。したがって、この場合、サーバーを更新するコマンドはビューを経由するのではなく、モデル自体に送信する必要があるようです。その場合、モデルは「ビューと同期してください!」と言うことができなければなりません。

しかし、ルールを破らずにこれを行う方法がわかりません。これにより、アーキテクチャに関する他の問題が発生します...

0 投票する
1 に答える
141 参照

backbone.js - Backbone.js - ネストされたモデル & コレクション内の複数のモデル?

  1. backbone.js でモデルをネストできますか? 例: モデル A は、その属性の 1 つをモデル B として持っています。

  2. コレクションに複数のモデル タイプを格納できますか?

0 投票する
3 に答える
136 参照

javascript - Backbone.js - 「fetch()」から返されるデータの編成をカスタマイズする

モデルの への呼び出し後にサーバーの応答をカスタマイズするにはどうすればよいfetch()ですか?

私が尋ねる理由は、モデルに複数の子モデルがある状況を扱っているからです。サーバーから返されたデータは、子モデル間で分割する必要があります。

例:

本当にありがとう!

0 投票する
1 に答える
957 参照

javascript - バックボーンモデルでパブリックメソッドを定義する

バックボーンコレクションを反復処理して、コレクション内のモデルから派生したオブジェクトの配列を取得する必要があります。

問題は、次のオブジェクト内にモデル定義を作成するときに、コレクションが定義されたメソッドにアクセスできるようにする方法がわからないことです。Backbone.Model.extend({})

これは私がこれまでに持っているアーキテクチャの例です:

ここでどこが間違っているのかわかりませんが、いくつかの推測があります。*コレクションはモデルを適切に反復していません。*パブリックメソッドはBackbone.Model.extend({})で定義できません。 *パブリックメソッドの間違った場所を探しています*Backbone.jsの使用目的の誤解から派生した他のアーキテクチャ上の間違い

どんな助けでもありがたいです、どうもありがとう!

編集

問題は、このコードに実際にバグがあったことでした。コレクションにデータが入力されたとき、モデルタイプとして「TheModel」への参照がなかったため、独自のモデルを作成しました。

コレクションを定義するときに、次のコード行を追加する必要がありました。model: TheModel

0 投票する
1 に答える
674 参照

javascript - Backbone.js ビューにモデルとコレクションを含めることはできますか?

Backbone.jsViewModelと を含めることはできますCollectionか?

私が尋ねている理由は、(リーフレット ライブラリを使用して) 場所がプロットされたマップを保持するビューで作業しているためです。

Collection、マップ上にプロットされる座標を保持するモデルのグループです。

マップのModel境界やマップの形状などを保持します。

これを他にどのようにやってのけるかわかりません...

どんな助けでも大歓迎です、ありがとう!

0 投票する
2 に答える
723 参照

javascript - ビューが置き換えられた後にバックボーン ビュー イベントが発生せず、ページに戻される

問題:

ビュー内で設定されたイベントは、ビューが を使用して別のものに置き換えられ、 を使用$element.html(anotherView)してページに戻された後に発生しません#element.html(theView)

例:

イベントは、このコードの実行後に機能します。

このコードは、後でビューがページ上で別のものに置き換えられたときに発生します。

ビューがページに再度追加されると、イベントは機能しなくなります。