【发布时间】:2014-12-21 03:44:19
【问题描述】:
我正在使用 KnockoutJS 开发基于视图模型的插件。有什么方法可以访问在同一应用程序中运行的另一个视图模型的功能和属性?像这样的:
我的视图模型:
function myViewModel()
{
this.prop1 = ko.observable(123);
this.prop2 = ko.observable("Hello");
..
..
}
myViewModel.prototype.func1 = function() {
//do something...
};
myViewModel.prototype.func2 = function() {
//do something...
};
和其他视图模型:
function otherViewModel()
{
this.propA = ko.observable(456);
this.propB = ko.observable("Goodbye");
..
..
}
otherViewModel.prototype.funcA = function() {
//do something...
};
otherViewModel.prototype.funcB = function() {
//do something...
};
otherViewModel 的可观察对象控制某些常用功能,例如弹出窗口和遮罩。有没有办法在 myViewModel 中实例化 otherViewModel 并设置这些属性?
或者有没有办法全局获取和设置它们?
请谨慎行事,因为我对这种范式很陌生。谢谢。
【问题讨论】:
-
嗯,这是一个非常广泛的问题。你应该阅读闭包、作用域和 oo 风格的 JS 编程。如需更实用的方法,请仔细阅读the knockoutjs tutorials 以及文档。那里有许多在视图模型之间创建依赖关系的示例。
标签: javascript html knockout.js viewmodel knockout-viewmodel-plugin