問題タブ [backbone-model]
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 - バックボーン更新モデル
バックボーンでは、次のモデル、コレクション、およびビューを作成しました
var sensor= Backbone.Model.extend({})
var sensorCollection = Backbone.Collection.extend({
model: sensor
})
var sensors= new sensorCollection;
var SensorView =Backbone.View.extend({})
var AppView =Backbone.View.extend({})
var App = new AppView
この PHP ソケットも実行しています。
ソケットからの温度測定値でモデルを変更/更新しようとしています。ご覧sensor.set
のとおり、次のことを試してみました。
App.model.set
This.model.set
App.sensor.set
そして、未定義または見つからない関数に関する何かを示すさまざまな方法があります。ここで何か不足していますか?それらはすべて同じで宣言されています$(function(){}
アウトバーン ソケット関数からバックボーン モデルを更新するにはどうすればよいですか?
backbone.js - データでいっぱいのバックボーン コレクションですが、モデルは空です
Backbone.js を使用して、データをコレクションにブートストラップしようとしています。私のブートストラップは次のようになりますlog.reset( <JSON> );
コレクションを console.log すると、データでいっぱいのオブジェクトがたくさん表示されます。問題は、ループ内の個々のモデルで console.log を実行すると、データのない空のオブジェクトがたくさん表示されることです。データはすべてコレクションにありますが、各 forEach パスでテンプレートに渡すことができません。プロジェクトの別の部分でまったく同じコード構造を使用して、完全に機能するコレクション ビューをレンダリングしました...なぜこれが機能しないのかわかりません。
コレクションのリセット イベントをリッスンしていることに注意してください。
空のモデルを修正するにはどうすればよいですか?
backbone.js - url プロパティをモデルに渡さない
Backbone ビューの単純な継承階層があり、すべてのビューに 1 つの汎用モデルを持たせたいと考えています。これらのビューのモデルの url プロパティのみが異なります。モデルを初期化するときにURLを渡します。
親のジェネリック ビューは次のとおりです。
子ビューは次のとおりです。
そして、GenericModel は単に空のモデルです (少なくとも今のところ)
コンソールで、次のエラーが表示されます。
私の階層が問題なのか、それとも何か他のものなのか? 何かご意見は?
backbone.js - バックボーンでのjson解析
私は常に次を返す成功コールバック関数を持っています:
しかし、これは常に未定義になります..結果を出力すると、上記の配列が得られます。result.ss または result.me を返すと、未定義になります。
これが起こっている理由には非常にばかげた理由があると思いますが、頭がわかりません。
バックボーン ビュー (他のコードを削除) :
rest - ビュー/ルーティングなしで backbone.js モデルの概念を使用する
既存の「サーバー側でレンダリングされた」Web アプリケーションを、より「科学的にレンダリングされた」アプローチに段階的に移行したいと考えています。
私の好ましい出発点は、残りのhttp-apiを使用してput/post/get/deleteリクエストを処理する、既存のデータ処理レイヤーをajaxスタイルのアプローチに変更することです。
だから私の質問は...ルーティング/コントローラー/ビュー/テンプレートを使用せずに、backbone.jsのコレクション/モデルの概念を既存のWebアプリケーションに使用する適切な方法はありますか?
ここで、slimframework を使用して作業中の rest-httpapi を既に持っていることを追加できます。そして、backbone.js モデル/コレクションを使用してデータをフェッチ/保存したいと考えています。しかし、html-rendering と event-binding は今のところ backbone.js の責任から外れているはずです。
ありがとう
backbone.js - Backbonejs collection.fetch() はデフォルトのモデル パラメータを強制します
Backbonejs を 1.0 にアップグレードした後、サーバーからコレクションをフェッチすると、応答しないデフォルト プロパティが強制されます。
より具体的には、 jsfiddleで検証できるこのテストを作成しました。
デフォルトのプロパティを持つバックボーン モデル定義があるとします。プロパティtext
は JSON でサーバーから受け取ることができ[{ "text": "updated", "id" : 1}]
、プロパティselected
はクライアント側で保持されます。
この設定を使用してサーバーからデータをフェッチすると、正しく機能します。このモデルを次のようにバックボーン コレクションに追加するとします。
新しいコレクション インスタンスを作成し、以下を設定しますfetch
。
その後、コレクション内の 1 つのモデルを取得し、selected
プロパティを trueに変更します。
コレクションを 2 回目に呼び出すと、応答にそのような値がなかったとしてもfetch
、バックボーンは以前に変更されたプロパティをデフォルト値にクリアします。false
値を取得すると、以前の set の代わりにselected
返されます。false
true
回避策:サーバーから受信しないプロパティをコメントアウトします。
しかし、その場合、バックボーンから多くの便利な機能が失われます。これは Backbonejs 1.0 の回帰ですか、それともこのモデルを間違った方法で使用していますか?
javascript - model.save - サーバーに一度だけ保存します
サーバーにデータを保存するバックボーンでこのコードを実行しています。
これは初めて実行したときは問題なく動作しますが、最初のデータを保存した直後にもう一度実行すると、新しいデータは保存されず、最後に保存されたデータが更新されるだけです。最初に保存すると POST リクエストが実行され、次に PUT リクエストが実行されるのはなぜでしょうか?
これが必要かどうかはわかりませんが、ここに私の初期化関数があります-