[解決済み] Backbone.jsのネストされたオブジェクト属性の取得と設定
2022-11-07 05:26:03
質問
Backbone.jsについて簡単な質問があります。 を得る と セット という関数があります。
1) 下記のコードで、obj1.myAttribute1を直接「取得」または「設定」するにはどうしたらよいですか?
もう一つの質問です。
2) モデルでは のデフォルト オブジェクトは別として、モデルの他の属性は、Backboneのgetとsetメソッドでアクセスできるように、どこで宣言できますか/すべきですか?
var MyModel = Backbone.Model.extend({
defaults: {
obj1 : {
"myAttribute1" : false,
"myAttribute2" : true,
}
}
})
var MyView = Backbone.View.extend({
myFunc: function(){
console.log(this.model.get("obj1"));
//returns the obj1 object
//but how do I get obj1.myAttribute1 directly so that it returns false?
}
});
できることは分かっている。
this.model.get("obj1").myAttribute1;
が、それは良い習慣なのでしょうか?
どのように解決するのですか?
一方
this.model.get("obj1").myAttribute1
は良いのですが、少し問題があります。なぜなら、同じようなことを set に対して行いたくなるかもしれないからです。
this.model.get("obj1").myAttribute1 = true;
しかし、このようにすると、Backboneのモデルの利点である
myAttribute1
のための、変更イベントや検証のようなBackboneモデルの利点を得ることができません。
よりよい解決策は、モデルの中でPOJSO ("plain old JavaScript objects")を決してネストせず、代わりにカスタムモデルクラスをネストすることでしょう。ですから、次のようになります。
var Obj = Backbone.Model.extend({
defaults: {
myAttribute1: false,
myAttribute2: true
}
});
var MyModel = Backbone.Model.extend({
initialize: function () {
this.set("obj1", new Obj());
}
});
とすると、アクセスコードは次のようになります。
var x = this.model.get("obj1").get("myAttribute1");
となりますが、より重要なのは、設定コードが
this.model.get("obj1").set({ myAttribute1: true });
で、適切な変更イベントなどを発生させます。動作例はこちら。 http://jsfiddle.net/g3U7j/
関連
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] Node.js の console.log() で '[Object]' ではなく、完全なオブジェクトを取得するにはどうすればよいですか?
-
[解決済み] Javascriptの配列に、指定された値に等しい属性を持つオブジェクトが含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] data-id属性を取得するにはどうすればよいですか?
-
[解決済み】ネストされたJavaScriptオブジェクトのキーが存在するかどうかをテストする
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] 無効になっている入力フィールドの値を送信する
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] Backbone.jsのネストされたモデル、アプローチ方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]