0

新たに作成したルート client/app/login で generator-angular-fullstack を使用しました。login.controller.js、login.html、login.js、login.controller.spec.js、および login.scss が含まれています。「authentication_token」と「user_id」を Cookie に返す JSON から保存したいサインイン API エンドポイントを設定しました。Angular-cookies (ngCookies) がインストールされています。

ドキュメントの例 ( https://docs.angularjs.org/api/ngCookies/service/ $cookies) を適応させようとしましたが、今のところうまくいきません。コンソール エラー = '$cookies.put は関数ではありません' (Angular 1.5.6)。また、変更

angular.module('myApp');

angular.module('myApp', ['ngCookies']); 

あるいは

angular.module('myApp', ['']); 

ヘッダーを除いて、すでにログインページが空白になります。存在しないモジュールをロードしようとすると、完全に空白のページが表示されるため(ヘッダーもありません)、モジュールが存在しないことは問題ではないと思います。

助言がありますか?

login.html

<body>
<script src="/bower_components/angular-cookies/angular-cookies.js"></script>    
<form ng-submit="callSignIn(username, password, site)">
Email:
  <input type="text" ng-model="username"><br>
Password:
  <input type="text" ng-model="password"><br>
Site:
  <input type="text" ng-model="site"><br>
  <input type="submit" value= "Submit">
</form>
<section ui-view>Response: {{response}}</section>
</body>

login.controller.js

'use strict';
(function(){

  class LoginComponent {
    constructor($scope, $http, $cookies) {
      $scope.callSignIn = function(username, password, site) {
        $http.post('/api/auth/signin', {
          username: username,
          password: password,
          site: site
        }).success(function(response, $cookies) {
          $scope.response = response;
          $cookies.put('myFavorite', 'oatmeal'); //testvalue
        });
      };

    }
  }

  angular.module('orbitApp') //angular.module('orbitApp', ['ngCookies']) gives blank login page...
    .component('login', {
      templateUrl: 'app/login/login.html',
      controller: LoginComponent
    });

})();

login.js

'use strict';

angular.module('orbitApp')
  .config(function ($stateProvider) {
    $stateProvider
      .state('login', {
        url: '/login',
        template: '<login></login>'
      });
  });

典型的な JSON 応答:

{"http_code":200,"response":{"authentication_token":"a","site_id":"b","content_url":"c","user_id":"d"}}
4

2 に答える 2

1

angular-cookies.jsindex.html ではなく、login.htmlをロードするのはなぜですか。

モジュールangular-cookiesがブートストラップするまでに、使用できなくなり、空白になると、console error too.

于 2016-06-06T11:07:31.243 に答える
0

Solved by changing

.success(function(response, $cookies) {

to

.success(function(response) {

while keeping everything else the same (incl. angular.module). It works like a charm now.

于 2016-06-06T14:10:49.990 に答える