問題
子モデルが初めて初期化されるとき、子のデフォルトのみが属性として設定されます。
2 番目 (および後続のすべて) の子が初期化されている場合、子の属性は、子とその親のデフォルトを表示します。
var Parent = Backbone.Model.extend({
defaults: {
name: "john",
lname: "smith",
age: 30,
language: "english",
location: "belgium"
}
});
var Child = Parent.extend({
defaults: {
hobby: "doing nothing",
age: 24,
occupation: "student"
},
initialize: function () {
this.constructor.__super__.initialize.apply(this, arguments);
_.defaults(this.defaults, this.constructor.__super__.defaults);
console.log(this.attributes);
}
});
初めて初期化された子の属性:
var child1 = new Child();
child1.attributes :
hobby: "doing nothing"
age: 24
occupation: "student"
2 回目に初期化された同じ Child クラスの属性:
var child2 = new Child();
child2 属性:
age: 24
hobby: "doing nothing"
language: "english"
lname: "smith"
location: "belgium"
name: "john"
occupation: "student"
質問
子モデルが初めて初期化されるときに、すべてのデフォルト (子および親) が属性として設定されないのはなぜですか?
Backbone.Collection
a の中に aを表示する必要があり<ul>
、すべてのモデルの属性は、 each 内の html フォームを介して構成できるため<li>
です。しかし、この問題のため、コレクション内の最初のモデルのすべての属性を取得できません。