0

我正在尝试使用 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>

这或多或少是我的淘汰赛脚本

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 没有更新!例如我试过这个:

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问题的解决方案是什么?

4

1 回答 1

0

一旦初始化,JQM 将改变 DOM,使许多默认的 ko 绑定变得无用。可以编写自定义绑定来解决这些问题。很难说这里的实际问题是什么,但这应该给你一些阅读的东西。

这是一篇有用的文章:http ://www.scottlogic.co.uk/blog/colin/2012/10/integrating-knockout-and-jquerymobile/

于 2013-01-24T23:56:55.597 回答