我最近在很多项目中都使用了 Knockout.js,并且我正在编写很多重复的代码。我希望能够定义一个BaseViewModel
类并让我的页面特定的 ViewModel 继承自它。我对如何做到这一点感到有点困惑是 Javascript。这是我的基本BaseViewModel
:
(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 中给它们定义。这有可能吗?我在网上找到了一些解决方案,但它们都依赖于定义函数/类来使继承工作。