您好我正在使用Knockout.js构建多页面应用程序,并且我面临着编写过多重复代码的问题。
作为我的一个观点中的例子我有:
var personVm = function {
//properties here
}
personVm.prototype {
//extensions & methods here
}
在某些时候我必须在其他视图中使用相同的ViewModel ..所以我最终复制代码..
我搜索了解决方案,require.js是最常见的..但在我的情况下,require.js不合适,我无法使用它。如果有人分享一些方法来处理这个问题,我会很高兴。
更新
要清除更多我的问题,我需要某种容器,我可以从中获取给定ViewModel的实例以获取不同的视图(我从asp.net获取)
答案 0 :(得分:1)
你可以使用淘汰赛自己的ko.utils.extend
var personVm = function {
//properties here
}
personVm.prototype {
//extensions & methods here
}
然后,稍后
var superHeroVm = function() {
var self = this;
self.specialPower = ko.observable();
ko.utils.extend(self, new personVm());
}
答案 1 :(得分:0)
为什么不能将personVm保存在一个文件中,您可以从该文件中访问并每次都创建一个新文件?
thisModel.person = new personVm(data);
otherModel.person = new personVm(data);
或者我没有正确理解问题?