Używam Knockout.js do wielu projektów ostatnio i piszę dużo powtarzalnego kodu. Chciałbym móc zdefiniować klasę BaseViewModel
i dziedziczyć z niej moje ViewModels specyficzne dla strony. Nie wiem, jak to zrobić, to JavaScript. Tu jest mój podstawowy BaseViewModel
:Knockout ViewModel klasa bazowa, dziedziczenie JavaScriptu
(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));
Chciałbym móc listy podpisów do metod takich jak load
w BaseViewModel
a następnie dać im definicje w dziedziczy ViewModel. Czy to możliwe? Znalazłem kilka rozwiązań online, ale wszystkie one polegają na definiowaniu funkcji/klas, aby dziedziczenie działało.
dlaczego przekazujesz 'niezdefiniowane' do funkcji? – Tyrsius
http://programmers.stackexchange.com/a/158376/90240 – gwely
Huh, nigdy wcześniej tego nie widziałem. Nigdy też nie natknąłem się na przypadek, w którym to nie powoduje błędu i nie wyjaśnia, co to jest. – Tyrsius