Knockout.js 如何在knockout js中扩展现有视图模型
例如,我在global.js中创建了一个主视图模型,其中包含一些在所有页面中使用的功能。然后,在pageA中,我想扩展主视图模型。但是我已经在global.js中调用了Knockout.js 如何在knockout js中扩展现有视图模型,knockout.js,Knockout.js,例如,我在global.js中创建了一个主视图模型,其中包含一些在所有页面中使用的功能。然后,在pageA中,我想扩展主视图模型。但是我已经在global.js中调用了ko.applybindings(masterViewModel)。我不能在pageA.js中更改主视图模型,然后重新应用它,因为它会导致错误 我该怎么办;扩展现有视图模型的正确方法是什么?一种方法是使用继承。因此,您将拥有基本(主)视图模型,然后创建继承基本视图模型的新视图模型(根据需要为每个页面)。下面是一个示例,说明如何(使
ko.applybindings(masterViewModel)
。我不能在pageA.js中更改主视图模型,然后重新应用它,因为它会导致错误我该怎么办;扩展现有视图模型的正确方法是什么?一种方法是使用继承。因此,您将拥有基本(主)视图模型,然后创建继承基本视图模型的新视图模型(根据需要为每个页面)。下面是一个示例,说明如何(使用)完成此操作
一种方法是继承。因此,您将拥有基本(主)视图模型,然后创建继承基本视图模型的新视图模型(根据需要为每个页面)。下面是一个示例,说明如何(使用)完成此操作
您是否考虑过新对象上的继承和
ko.applybindings
?您也可以尝试以相反的方向用力拉动它,看看它是否以这种方式扩展。听起来您更需要一个带有母版页和页面的SPA框架?您是否考虑过新对象上的继承和ko.applybindings
你也可以试着从相反的方向用力拉它,看看它是否能扩展到那个方向。听起来你更需要一个带有母版页和页面的SPA框架?
var baseModel = function () {
var self = this;
self.preference = ko.observable();
}
function pageAviewModel() {
var self = this;
// inherit from baseModel
baseModel.call(self);
self.setPreference = function () {
// you can now utilize observables from your base model
self.preference("Pizza");
}
};
ko.applyBindings(new pageAviewModel());