Mam trzy stosunkowo podobne modele nokautu w mojej aplikacji i chciałbym rozszerzyć model podstawowy, aby połączyć wspólne właściwości, a nie powtarzać się trzy razy.Knockout JS Model Inheritance
przykład
var ItemModel = function (item) {
var self = this;
self.order = ko.observable(item.order);
self.title = ko.observable(item.title);
self.price = ko.observable(item.price);
self.type = ko.observable(item.type);
};
var StandardItemModel = function (item, cartItemTypes) {
var self = this;
self.order = ko.observable(item.order);
self.title = ko.observable(item.title);
self.price = ko.observable(item.price);
self.type = ko.observable(item.type);
self.isInCart = ko.computed(function() {
return cartItemTypes().indexOf(item.type) > -1;
}, self);
self.itemClass = ko.computed(function() {
return self.isInCart() ? "icon-check" : "icon-check-empty";
}, self);
};
var CustomItemModel = function (item) {
var self = this;
self.order = ko.observable(item.order);
self.title = ko.observable(item.title);
self.price = ko.observable(item.price);
self.type = ko.observable(item.type);
self.icon = item.icon;
};
Chciałbym użyć ItemModel jako klasy bazowej i po prostu dodać dodatkowe właściwości, jak to konieczne.
OK, ale jakie jest twoje pytanie? Jakie masz problemy podczas tworzenia klasy bazowej? – nemesv
moje pytanie jest najlepsze podejście do tego w javascript i jeśli nokaut zapewnia pewne narzędzie do uproszczenia go. – BillPull