有没有办法将新方法添加到已定义的模型中,例如
var MyModel = function() {
var self = this;
self.method1 = function () {
return true;
}
self.method2 = function () {
return true;
}
};
viewModel = new MyModel ();
ko.applyBindings(viewModel);
这使我可以访问viewModel.method1()
和viewModel.method2()
,但我希望以后能够以相同的方式在文件中添加新方法,例如。
viewModel.extend = function() {
self.method3 = function () {
return true;
}
}
现在我可以访问viewModel.method1()
,viewModel.method2()
和viewModel.method3()
有什么想法吗?
由于
答案 0 :(得分:1)
您可以使用原型定义一个:
MyModel.prototype.method3 = function() {
var self = this; // Reference to instance of MyModel
var m1 = self.method1();
var m2 = self.method2();
return true;
};
在你的例子中:
var MyModel = function() {
var self = this;
self.method1 = function () {
return true;
}
self.method2 = function () {
return true;
}
};
viewModel = new MyModel ();
ko.applyBindings(viewModel);
MyModel.prototype.method3 = function() {
return true;
};
console.log(viewModel.method3());