2016-05-24 17 views
0

AngularJSコントローラはIBM MobileFirstの関数ではありませんが、エラーが発生しています。私はスタックオーバーフローで尋ねられる多くの同様の質問を行ったが、何も私を助けなかった。AngularJSコントローラはIBM MobileFirstの関数ではありません

Error Print Screen

// **************** app.js *************** 
 

 
var app = angular.module('myApp',['ui.router']); 
 

 
app.config(function($stateProvider, $urlRouterProvider){ 
 
\t 
 
\t $urlRouterProvider.otherwise('/login'); 
 
\t 
 
\t $stateProvider 
 
\t \t .state('login',{ 
 
\t \t \t url:'/login', 
 
\t \t \t templateUrl:'view/login.html', 
 
\t \t \t controller:'loginController' 
 
\t \t }); 
 
\t 
 
}); 
 

 

 
// **************** login.js *************** 
 

 

 
app.controller('loginController',function($scope){ 
 
\t 
 
\t $scope.login = function(){ 
 
\t \t $scope.userName = angular.element('#usrName').val(); 
 
\t \t $scope.password = angular.element('#pass').val(); 
 
\t \t console.log($scope.userName, $scope.password); 
 
\t \t 
 
\t \t 
 
\t \t 
 
\t \t $scope.loginProcedure ={ 
 
\t \t \t \t procedure:'login', 
 
\t \t \t \t adaptor:'SQL', 
 
\t \t \t \t parameters:[$scope.userName, $scope.password] 
 
\t \t }; 
 
\t \t 
 
\t \t WL.Client.invokeProcedure($scope.loginProcedure, function(){ 
 
\t \t \t onSuccess: loginSuccess, 
 
\t \t \t onFailure: loginFailure 
 
\t \t }); 
 
\t \t 
 
\t \t $scope.loginSuccess = function() 
 
\t \t { 
 
\t \t \t alert('success'); 
 
\t \t }; 
 
\t \t 
 
\t \t $scope.loginFailure = function() 
 
\t \t { 
 
\t \t \t alert('failed'); 
 
\t \t }; 
 
\t } 
 
\t 
 
});
<!-- INDEX.html --> 
 

 
<!DOCTYPE HTML> 
 
<html> 
 
    \t <head> 
 
    \t \t <meta charset="UTF-8"> 
 
    \t \t <title>AB</title> 
 
    \t \t <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> 
 
    \t \t <!-- 
 
    \t \t \t <link rel="shortcut icon" href="images/favicon.png"> 
 
    \t \t \t <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> 
 
    \t \t --> 
 
    \t \t <link rel="stylesheet" href="css/main.css" /> 
 
    \t \t <link rel="stylesheet" href="css/bootstrap.min.css" /> 
 
    \t \t <link rel="stylesheet" href="css/bootstrap-responsive.min.css" /> 
 
    \t \t 
 
    \t \t <script>window.$ = window.jQuery = WLJQ;</script> 
 
    \t </head> 
 
    \t <body ng-app="myApp"> 
 
    \t \t <!--application UI goes here--> 
 
    \t \t 
 
    \t \t <div id="view" ui-view></div> 
 
    \t \t 
 
    \t \t <script src="js/initOptions.js"></script> 
 
    \t \t <script src="js/main.js"></script> 
 
    \t \t <script src="js/messages.js"></script> 
 
    \t \t <script src="library/jquery.min.js"></script> 
 
    \t \t <script src="library/angular.1.4.9.js"></script> 
 
    \t \t <script src="library/angular-ui-router.min.js"></script> 
 
    \t \t <script src="library/bootstrap.min.js"></script> 
 
    \t \t <script src="controller/app.js"></script> 
 
    \t \t <script src="controller/login.js"></script> 
 
    \t </body> 
 
</html> 
 

 
<!-- Login.html --> 
 

 
<div ng-controller="loginController" class="col-xs-12 col-sm-6 col-md-4 center-block" id="lgBlock"> 
 

 
\t <!-- Login Box Start --> 
 

 
\t <div class="panel panel-primary"> 
 
\t \t <div class="panel-heading">Login</div> 
 
\t \t <div class="panel-body"> 
 
\t \t \t <form class="form-group" name="lgForm"> 
 
\t \t \t \t <input type="text" class="form-control" id="usrName" ng-modal="usrName" required /> 
 
\t \t \t \t <input type="password" class="form-control" id="pass" ng-modal="pass" required /> 
 
\t \t \t \t <input type="submit" class="btn btn-primary btn-block" id="submit" value="Login" ng-click="login()" /> 
 
\t \t \t </form> 
 
\t \t </div> 
 
\t </div> 
 
\t 
 
\t <!-- Login Box End --> 
 
\t 
 
\t <!-- error Modal start --> 
 
\t 
 
\t <div class="modal" role="modal" id="errorPopup"> 
 
\t \t <div class="modal-dialog"> 
 
\t \t \t <div class="modal-content"> 
 
\t \t \t \t <div class="modal-header">Error</div> 
 
\t \t \t \t <div class="modal-body"></div> 
 
\t \t \t </div> 
 
\t \t </div> 
 
\t </div> 
 
\t 
 
\t <!-- error Modal End --> 
 

 
</div>

+0

の間違った綴りました画面。あなたがこれを助けるかどうか確認するためにこれを解決できますか? [$ scope.userName、$ scope.password] 2)$: 1正しい1以下)$ scope.login =関数($ scope.userName、$ scope.password){ パラメータのどれ – keithm

答えて

0

問題があなたの印刷に応じてlogin.jsのライン18上の誤りがあり、アダプタ

/* wrong one */ 
 

 
$scope.loginProcedure ={ 
 
\t \t \t \t procedure:'login', 
 
\t \t \t \t adaptor:'SQL', 
 
\t \t \t \t parameters:[$scope.userName, $scope.password] 
 
\t \t }; 
 

 

 
/*write one */ 
 

 
$scope.loginProcedure ={ 
 
\t \t \t \t procedure:'login', 
 
\t \t \t \t adapter:'SQL', 
 
\t \t \t \t parameters:[$scope.userName, $scope.password] 
 
\t \t };

0

あなたのHTML内だけでなく、あなたのルート設定でloginControllerを指定しています。私はこれが問題の原因であるとは確信していませんが、両方を行うことは不必要です。それらのうちの1つを取り外します。すなわち

、コントローラ排除:からNG-コントローラ= "loginController":

$stateProvider 
    .state('login',{ 
     url:'/login', 
     templateUrl:'view/login.html', 
     controller:'loginController' 
    }); 

又は排除下から 'loginController' を無関係、また

<div ng-controller="loginController" class="col-xs-12 col-sm-6 col-md-4 center-block" id="lgBlock"> 

、私はそれを疑いますこれら2つの行:

$scope.userName = angular.element('#usrName').val(); 
$scope.password = angular.element('#pass').val(); 

あなたはどう思いますか? angular.elementの目的は、要素をjquery要素としてラップすることです。私はここでitem.getElementByIdを使ってアイテムへの参照を取得したいと思う。しかし、ここではngModelを使用しています。したがって、一貫したスペルを使用する場合は、この必要はありません。 (一つの場所では、ユーザ名と別のusrNameはでています。)

+0

scope.login = function(userName、password){ パラメータ:[userName、password] – Jay

+0

コメントはこの場所ではありません。コントローラの読み込みの問題を解決してから、新しい質問を開くことをお勧めします。あなたのhtmlとあなたのコントローラには多くの問題があります。申し訳ありませんが、私はあなたにその道を導きます。コントローラのリファレンスの1つを削除すると、最初の問題が解決しましたか? –

関連する問題