2017-01-20 3 views
0

У меня проблемы с печеньем. Когда я использую ngCookies в своем проекте, что-то не так в моем div (alert). enter image description here

А вот мои app.js

angular.module('postLogin', [ngCookies]) 
.controller('PostController', ['$scope', '$http', function($scope, $http) {   
     this.postForm = function() { 
      var encodedString = 'username=' + 
       encodeURIComponent(this.inputData.username) + 
       '&password=' + 
       encodeURIComponent(this.inputData.password); 

      $http({ 
       method: 'POST', 
       url: 'userauth.php', 
       data: encodedString, 
       headers: {'Content-Type': 'application/x-www-form-urlencoded'} 
      }) 

      .success(function(data) { 
        //console.log(data); 
        if (data.trim() === 'correct') { 
         window.location.href = 'success.html'; 
        } else { 
         $scope.errorMsg = "Username and password do not match."; 
        } 
      })    
     } 
}]); 

А вот мой index.html

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"/> 
     <meta name="robots" content="noindex"/> 
     <title>angulrjs login page</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1"/> 
     <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"/> 
     <link href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" id="main-css"/> 
     <link href="css/style.css" rel="stylesheet" id="main-css"/> 
     <script src="//code.jquery.com/jquery-1.10.2.min.js"></script> 
     <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script> 
     <script src="angular.min.js"></script> 
    </head> 
    <body ng-app="postLogin" ng-controller="PostController as postCtrl"> 
     <div class="container"> 
     <div id="loginbox" class="mainbox col-md-6 col-md-offset-3 col-sm-6 col-sm-offset-3"> 
      <div class="row"> 
       <img src="images/logo.jpg" class="imglogo"/> 
      </div> 
      <div class="panel panel-default" > 
       <div class="panel-heading"> 
        <div class="panel-title text-center">Login using username & password</div> 
       </div> 
       <div class="panel-body" > 
        <form name="login" ng-submit="postCtrl.postForm()" class="form-horizontal" method="POST"> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span> 
         <input type="text" id="inputUsername" class="form-control" required autofocus ng-model="postCtrl.inputData.username"/> 
        </div> 
        <div class="input-group"> 
         <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span> 
         <input type="password" id="inputPassword" class="form-control" required ng-model="postCtrl.inputData.password"/> 
        </div> 
        <div class="alert alert-danger" ng-show="errorMsg"> 
         <button type="button" class="close" data-dismiss="alert" aria-hidden="true"> 
         ×</button> 
         <span class="glyphicon glyphicon-hand-right"></span>&nbsp;&nbsp;{{errorMsg}} 
        </div> 
        <div class="form-group"> 
         <div class="col-sm-12 controls"> 
          <button type="submit" class="btn btn-primary pull-right" ng-disabled="login.$invalid"> 
          <i class="glyphicon glyphicon-log-in"></i> Log in</button> 
         </div> 
        </div> 
        </form> 
       </div> 
      </div> 
     </div> 
     </div> 
     <script src="app.js"></script> 
    </body> 
</html> 

Когда я не использовал ngCookies

angular.module('postLogin', []) 

Он может быть запущен как обычно. Пожалуйста, помогите мне, я действительно хочу, чтобы он выбрал имя пользователя в моей форме входа на следующую страницу. Я не могу использовать $ cookie, например session в php. Благодарю.

ответ

0

В модуле setter (angular.module ...), когда вы вводите зависимые модули, они должны быть в кавычках. В вашем примере нет цитат, связанных с ngCookies. Кроме того, ваш index.html не ссылается на файл angular-cookies.js, который не является частью базового файла angular.js.

Проверьте средства разработки для конкретной ошибки (F12).

+0

Извините, это было неправильно. Я имею в виду, когда я использовал в модуле setter ['ngCookies'], не мог работать как обычно. Если я использую ['ngCookies'], в [$ injector: modulerr] произошла ошибка, когда я проверил в F12 часть консоли (точка JS). В противном случае используйте ['ngCookies'], эта ошибка исчезла в консоли (точка JS). Я думаю, у меня должен быть файл .js, такой как angular-min.js для ngCookies. Может быть ? Я ошибаюсь ? –

+0

Спасибо за помощь, я знаю, как ее решить. Мне просто нужны эти части .js (угловые-cookies.min.js и angular.min.js). Мои ссылки: http://www.tutorialsavvy.com/2014/11/angularjs-cookie-example.html/ и http://stackoverflow.com/questions/10961963/how-to-access-cookies-in-angularjs. Это первый раз, когда я использую javascript, потому что я начинаю. Извините за мой глупый вопрос. :( –

Смежные вопросы