我正在尝试使用JQM和Knockout来建立一个可移植的Web应用程序。 在我的Knockout脚本工作后,我试图在其中获得一些风格。
<form action="" data-bind=" template:{ 'if': loginVM, data: loginVM }">
//Some Code
</form>
<form action="" data-bind="template: { 'if': startVM, data: startVM }">
//Some Code
</form>
这或多或少是我的Knockout脚本
var masterViewModel = {
loginVM: ko.observable(),
startVM: ko.observable(),
projektUnterbrechen: ko.observable(),
logout: ko.observable(),
projectStartVM: ko.observable()
};
var LoginVM = function () {
var self = this;
self.showDetails = function () {
if ((self.user() == "Gregor") && (self.password() == "gregrech")) {
masterViewModel.loginVM(null);
masterViewModel.startVM(new StartVM());
}
};
var StartVM = function () {
//Some Code
};
现在添加
之后<script src="../../Scripts/jquery.mobile-1.2.0.js" type="text/javascript"></script>
到我的项目我的淘汰赛不再适用了。 好像我的masterViewModel不是updatet! 例如我试过这个:
var LoginVM = function () {
var self = this;
self.showDetails = function () {
if ((self.user() == "Gregor") && (self.password() == "gregrech")) {
masterViewModel.loginVM(null);
masterViewModel.startVM(new StartVM());
alert(masterViewModel.startVM()==null) //Messagebox displays "false"
}
};
var StartVM = function () {
alert(masterViewModel.startVM()==null) //Messagebox displays "true"
};
什么可能是这个starnge问题的解决方案?
答案 0 :(得分:0)
JQM将在初始化后更改DOM,使许多默认的ko绑定无效。可以编写自定义绑定来解决这些问题。很难说出这里的实际问题是什么,但这应该给你一些东西可以阅读。
这是一篇有用的文章:http://www.scottlogic.co.uk/blog/colin/2012/10/integrating-knockout-and-jquerymobile/