В последнее время я использую Knockout.js для большого количества проектов, и я пишу много повторяющегося кода. Я хотел бы иметь возможность определить класс BaseViewModel
и унаследовать от него мои ViewModels, специфичные для этой страницы. Я немного смущен о том, как это сделать - Javascript. Вот мой основной BaseViewModel
:Нокаут ViewModel базовый класс, наследование Javascript
(function (ko, undefined) {
ko.BaseViewModel = function() {
var self = this;
self.items = ko.observable([]);
self.newItem = {};
self.dirtyItems = ko.computed(function() {
return self.items().filter(function (item) {
return item.dirtyFlag.isDirty();
});
});
self.isDirty = ko.computed(function() {
return self.dirtyItems().length > 0;
});
self.load = function() { }
};
}(ko));
Я хотел бы иметь возможность перечислить подписи методов, как load
в BaseViewModel
, а затем дать им определение в наследуемых ViewModel. Возможно ли это? Я нашел несколько решений в Интернете, но все они полагаются на определение функций/классов, чтобы заставить наследование работать.
Почему вы передаете 'undefined' в функцию? – Tyrsius
http://programmers.stackexchange.com/a/158376/90240 – gwely
Да, никогда не видел этого раньше. Я также никогда не сталкивался с тем случаем, когда это не вызывает ошибок, и он не объясняет, что это такое. – Tyrsius