Tôi muốn đặt câu hỏi này là câu hỏi cho câu trả lời là this nhưng tôi không thể làm như vậy, tôi xin lỗi.Mở rộng các giá trị mặc định của siêu mô hình trong Backbone.js
Mở rộng các giá trị mặc định cho lớp con được phản ánh trong lớp cha. Điều này dường như để đánh bại mục đích và tôi thích hợp hơn để liệt kê rõ ràng các giá trị mặc định của lớp cha trong lớp con để có được cấu trúc mà tôi đang tìm kiếm.
var Inventory = Backbone.Model.extend({
defaults: {
cat: 3,
dog: 5
}
});
var ExtendedInventory = Inventory.extend({
});
_.extend(ExtendedInventory.prototype.defaults, {rabbit: 25});
var i = new Inventory();
var ei = new ExtendedInventory();
console.log(i.attributes);
console.log(ei.attributes);
đầu ra này:
{cat: 3, dog: 5, rabbit: 25}
{cat: 3, dog: 5, rabbit: 25}
Not what I (và cũng không, tôi giả sử, các op) muốn:
{cat: 3, dog: 5}
{cat: 3, dog: 5, rabbit: 25}
Cảm ơn, @JCorcuera. Tôi nên xem xét kỹ hơn ở _.extend() để tìm ra điều này. Tuy nhiên, một vấn đề với giải pháp này là nếu tôi thay đổi các giá trị mặc định ExtendedInventory thành '{dog: 15, rabbit: 25}' giá trị của ExtendedInventory của 'dog' được ghi đè trở lại thành' 5'. Tôi đoán tôi sẽ quay lại 'for (a in this.eiDefaults) {this.attributes [a] = this.eiDefaults [a];}' trong phương thức 'initialize' của ExtendedInventory. – mcdoh
@mcdoh mm bạn nói đúng nhưng cái thứ hai hoạt động ok. – JCorcuera
Bạn đúng, vì vậy có vẻ như giải pháp thứ hai của bạn là cách để giải quyết vấn đề này. Cảm ơn bạn đã giúp đỡ! – mcdoh