JQM问题Knockout

时间:2013-01-08 20:02:00

标签: jquery-mobile knockout.js

我正在尝试使用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问题的解决方案?

1 个答案:

答案 0 :(得分:0)

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

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