2016-04-04 13 views
0

Uncaught TypeError:デバイスまたは非リップルエミュレータでアンドロイドで実行されているkendo mobile corovaプロジェクトで未定義のメソッド 'triggerBeforeShow'を呼び出すことはできません。剣道 - Cordova - ナビゲーション - Uncaught TypeError:未定義のメソッド 'triggerBeforeShow'を呼び出せません

エラーはナビゲーションに関連しているようです。

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <!-- 
      Customize the content security policy in the meta tag below as needed. Add 'unsafe-inline' to default-src to enable inline JavaScript. 
      For details, see http://go.microsoft.com/fwlink/?LinkID=617521 
      --> 
     <meta http-equiv="Content-Security-Policy" content="default-src 'self' http://cdn.kendostatic.com http://ajax.googleapis.com http://code.jquery.com https://caredarewebapi.azurewebsites.net https://localhost:44309/ https://localhost:44300/ https://caredarestorage.blob.core.windows.net/ 'unsafe-eval' 'unsafe-inline' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 
     <title>CorovaStartupNavigationTest</title> 
     <!-- CorovaStartupNavigationTest references --> 
     <link href="css/kendo.mobile.all.min.css" rel="stylesheet" /> 
     <script src="scripts/index.js"></script> 
    </head> 
    <body kendo-mobile-application skin="'flat'" ng-app="sushiMobileApp"> 
     <kendo-mobile-view id="index" ng-controller="indexController"> 
      <kendo-mobile-header> 
       <kendo-mobile-nav-bar> 
        Home View 
        <kendo-mobile-button k-align="'right'" data-icon="'contacts'" id="btnProfile" k-on-click="mnuProfile.open($('#btnProfile'))"></kendo-mobile-button> 
       </kendo-mobile-nav-bar> 
      </kendo-mobile-header> 
      <ul kendo-mobile-action-sheet="mnuProfile" k-type="'phone'" k-on-command="onCommand(kendoEvent)"> 
       <li><a href="#" data-command="login">Login</a></li> 
       <li ng-hide="(authentication.token.length == 0)"><a href="#" data-command="logout">Logout</a></li> 
       <li><a href="#" data-command="showProfile">My Profile</a></li> 
      </ul> 
     </kendo-mobile-view> 
     <script src="cordova.js"></script> 
     <script src="scripts/platformOverrides.js"></script> 
     <script src="scripts/jquery.min.js"></script> 
     <script src="scripts/angular.js"></script> 
     <script src="scripts/kendo.all.min.js"></script> 
     <script src="app/modules/cdlogin.js"></script> 
     <script> 
      angular.module('sushiMobileApp', ['kendo.directives', 'cdlogin']) 
      .controller('indexController', ['$scope', function ($scope) { 
       $scope.showHome = function (kendoEvent) { 
        kendo.mobile.application.navigate("/app/views/viewtabhome.html"); 
       } 

       $scope.onCommand = function (kendoEvent) { 
        $scope.command = kendoEvent.currentTarget.data("command"); 
        switch ($scope.command) { 
         case "login": 
          kendo.mobile.application.navigate('/app/views/viewlogin.html'); 
          break; 
        } 
       } 
      }]); 
      ; 
     </script> 
    </body> 
</html> 
<!-- Login View --> 
<kendo-mobile-view id="viewLogin" data-title="Login" ng-controller="loginCtrl" k-on-before-show="beforeShow(kendoEvent)"> 
    <kendo-mobile-header> 
     <kendo-mobile-nav-bar> 
      <kendo-mobile-back-button data-align="left" >Back</kendo-mobile-back-button> 
      Login 
     </kendo-mobile-nav-bar> 
    </kendo-mobile-header> 
    <div class="container"> 
     <div class="col-md-6 col-md-offset-3 col-sm-8 col-sm-offset-2" style="margin-top:50px"> 
     <form id="frmLogin" kendo-validator="validatorLogin" ng-submit="validate($event)"> 
      <div>Logged in as {{authSrv}}</div> 
      <div class="form-group"> 
       <label for="txtLoginUserName">Email:</label> 
       <input class="form-control" type="text" ng-model="txtLoginUserName" id="txtLoginUserName" placeholder="Enter" name="User Name" required="required" /> 
       <span class="k-invalid-msg" data-for="txtLoginUserName"> </span> 
      </div> 
      <div class="form-group"> 
       <label for="txtLoginPassword">Password:</label> 
       <input class="form-control" type="password" ng-model="txtLoginPassword" id="txtLoginPassword" placeholder="Enter" name="Password" required="required" /> 
      </div> 
      <nobr> 
       <div class="checkbox"> 
        <label> 
        Remember Me: 
        <input style="margin-left:10px" type="checkbox" ng-model="LoginRememberMe" id="chkLoginRememberMe" ng-click="rememberMe()" /> 
        </label> 
       </div> 
      </nobr> 
      <span class="alert alert-info" k-append-to="'#lblLoginErrors'" kendo-notification="staticNotification"></span> 
      <div style="text-align:center"> 
       <span id="lblLoginErrors" style="width:100%"></span><br /> 
       <input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;" /> 
       <kendo-mobile-button ng-click="login()" class="k-primary" ng-disabled="notLoggingIn != true"> 
        Log in 
       </kendo-mobile-button> 
       <p> 
        <kendo-mobile-button ng-click="register()">Register</kendo-mobile-button> 
        if you don't have a local account. 
       </p> 
      </div> 
      <div class="list-group" id="divExternalLogins"> 
       <a href="#" class="list-group-item " style="height:60px" ng-repeat="dsDataItem in dsExternalLoginProviders.data()" ng-click="login(dsDataItem)"> 
       <i class="{{dsDataItem.icon}} fa-5"></i>&nbsp; Sign in with {{dsDataItem.name}} 
       </a> 
      </div> 
     </form> 
     </div> 
    </div> 
    <div id="winLogin" kendo-window="winLogin" k-title="'Login'" 
     k-width="600" k-height="400" k-visible="false" 
     k-on-open="winLoginvisible = true" k-on-close="onClose();winLoginvisible = false"></div> 
</kendo-mobile-view> 

function LoginCtrl($scope) { 
    $scope.beforeShow = function() {} 
} 
LoginCtrl.$inject = ['$scope'];  
angular.module('cdlogin', ['kendo.directives']).controller('loginCtrl', LoginCtrl); 

答えて

0

アンドロイドのcordovaでは、leading/for navigationがアプリケーションを壊してこのエラーをスローします。溶液を、ナビゲーション方法を変更することでした:

kendo.mobile.application.navigate('app/views/viewlogin.html');

関連する問題