私はノックアウトの初心者です。しばらく作業した後、小さな問題を追跡しました(モバイルSPAを構築しようとしています):
プロジェクトで JQuery と Knockout をバインドすると、ViewModel が 2 回呼び出されます。
  @{
        Layout=null;
    }
<head>
    <meta name="viewport" content="width=device-width" />
    <link rel="stylesheet" href="@Url.Content("~/Content/jquery.mobile-1.2.0.min.css")" />
    <link rel="stylesheet" href="@Url.Content("~/Content/Site.css")" />
    <script src="../../Scripts/jquery-1.8.3.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery.mobile-1.2.0.js" type="text/javascript"></script>
     <script type="text/javascript">
         $(document).bind("mobileinit", function () {
             // As of Beta 2, jQuery Mobile's Ajax navigation does not work in all cases (e.g.,
             // when navigating from a mobile to a non-mobile page, or when clicking "back"
             // after a form post), hence disabling it.
             $.mobile.ajaxEnabled = false;
         });
    </script>
    @*jquery löst ViewMOdel aus*@
    <script type="text/javascript" src="../../Scripts/upshot.min.js"></script>
    <script type="text/javascript" src="../../Scripts/Upshot_Timeworx.js"></script>
    <script type="text/javascript" src="../../Scripts/knockout-2.2.0.js"></script>
</head>
<body>
    <!-- Login Seite -->
    <form data-bind="visible: userNotLoggedIn">  
        <label>Mandant</label><br /> <input data-bind="value: mandant" type="text" name="Mandant" />
        <br />
        <label>Benutzername</label><br /> <input data-bind="value: user" type="text" name="Benutzername"/>
        <br />
        <label>Passwort</label><br /> <input data-bind="value: password" type="password" name="Passwort"/>
        <br />
        <input type="button" value="Anmelden" name="login" data-bind="click: login" align="middle" />
    </form>
    <!-- ----------------------------------  -->
</body>
<script type="text/javascript">
    $(function () {
  function AppViewModel() {
            var self = this;
            var time = new Date();
            //Der User ist noch nicht angemeldet
            self.userNotLoggedIn = ko.observable(true);
            //Die Startseite wird versteckt
            self.showStart = ko.observable(false);
            //Die Detailseite wird versteckt 
            self.showDetails = ko.observable(false);
            //----------------------------------------------//
            //LogInSeite
            self.mandant = ko.observable("");
            self.user = ko.observable("");
            self.password = ko.observable("");
            //Überprüfen ob Passwort übereinstimmt
            self.login = function () {
                var pass = self.password();
                //alert(pass); Überprüfen ob das richtige passwort gespeichert wurde
                //!!!!!! ES MÜSSEN NOCH DIE ZUGANGSDATEN AUS DER DATENBANK EINGESETZT WERDEN!!!!!"
                if ((self.password() == "gregrech") && (self.user() == "Gregor")) {
                    //Code um die LogInSeite zu schließen 
                    //und die Startseite zu zeigen
                    //self.userNotLoggedIn(false);
                    self.showStart(true);
                    self.userNotLoggedIn(false);    //Die Log In Seite wird im Hintergrund versteckt
                }
                else {
                    alert("Username oder Passwort nicht korrekt");
                }
            }
            //Hier Endet der Knockout-Code für die LogIn-Seite
            //-------------------------------------------------------------------------------------------------------------------//
            //StartSeite
            self.details = function () {
                self.showStart(false);
                self.showDetails(true);
                //Funktioniert noch nicht
                //self.projectName = self.projectDetails.projectName();
            }
            //--------------------------------------------//
        ko.applyBindings(new AppViewModel);
    });
</script>
このコードを実行しようとすると、メッセージ ボックスからアラートが 2 回表示されますが、バインドされているのは JQuery モバイルだけです。
誰かが私の問題が何であるか知っていますか? これをメッセージボックスフォームから実行しようとすると、アラートが2回表示されますが、JQueryモバイルのみがバインドされています!
誰かが私の問題が何であるか知っていますか?