2012-11-28 3 views
1

나는 내가 약간의 문제를 추적 작업 시간 (I 모바일 SPA 구축을 위해 노력하고있어) 후 넉 아웃 에서 꽤 많은 초보자 해요 : 난에 JQuery와 및 녹아웃을 결합하면JQuery와는 넉 아웃 뷰 모델을 호출

을 경고가 두 번 온다 내가이 코드를 실행하려고하면

@{ 
     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> 

메시지 박스가 형성하지만 JQuery와 모바일이에 바인딩 : 내 프로젝트 내 뷰 모델은 두 번 호출됩니다!

내 문제는 누구에게 알 수 있습니까? 메시지 상자 양식을 실행하려고하면 경고가 두 번 나타나지만 JQuery 모바일 만 바인딩됩니다!

내 문제는 누구에게 알 수 있습니까?

+2

당신이 당신의 코드 JSFiddle을 게시 할 수 : pageinit event

$(function() { ... 

는 대신 사용할 수 있습니까? 제공 한 코드에는 아무런 문제가없는 것 같지만 문제는 다른 곳에서 발생했을 수 있습니다. –

+0

jqery mobile을 사용하지 않으면 잘 작동합니다! JS 피들 (Piddle Fiddle)을 이미 시험해 봤지만 잘 돌아갔습니다! 이 도움이된다면 내가 ASP.NET MVC4에서 일하고 있어요 ... JQuery와는 당신이 경고가 "배"가 나타납니다 말할 때 내 녹아웃 스크립트 – Greg

+0

의 전체 뷰 모델의 유효성을 확인 것처럼 .... 보인다는 의미합니까 시스템 경고와 jQuery 모달 경고를 받고 있습니까? 다른 하나 또는 동시에 팝업이 갑자기 나타 납니까? 아니면 완전히 다른 것을 의미합니까? 사용중인 Javascript'alert()'호출 대신 jQuery 모달 호출을 사용하여 구체적으로 시도해 볼 수 있습니다. –

답변

0

$ (document) .ready를 jQuery 모바일 페이지 isn't reliable과 함께 사용하십시오. 이로 인해 문제가 발생할 수 있습니다. 현재 코드에서

, 당신은 암시 적으로 호출을 통해 .ready 사용하고 있습니다 :

$('#aboutPage').live('pageinit', function(event) { 
    // Create and bind your Knockout view model here. 
}); 
+0

도움이 된 것 같습니다. 감사합니다. – Greg