10

私のアプリでは、これをやっています:

angular.module('myApp.controllers', ['ngCookies']).
  controller('AppCtrl', function ($scope, socket, $cookies) {
        console.log("socket:");
        console.log(socket);
        $scope.component = 'main';
        gLoggedIn = "no";
        gUserName = "";
        console.log("reset logged in status");
        sid = $cookies;
        $scope.setComponent = function(val) {
            $scope.component = val;
        }
  }).

しかし、私はエラーが発生し続けます:

TypeError: 'undefined' is not an object (evaluating 'angular.module')" and "Error: No module: ngCookies

明らかに、['ngCookies'] をモジュールのここにロードします! さらに、angular、angular-cookies、および angular-loader の bower インストールを行い、これを index.jade に追加しました。

script(src='bower_components/angular-cookies/angular-cookies.js')
script(src='bower_components/angular/angular.js')
script(src='bower_components/angular-loader/angular-loader.js')

それで、何が得られますか?

['ngCookies'] をさまざまな場所に追加しようとしましたが、役に立ちませんでした: app.js、いいえ; services.js、いいえ。それで、問題は何ですか?

4

2 に答える 2

18

angular.js をロードする前に、angular-cookie をロードしています。次のように並べ替えます。

script(src='bower_components/angular/angular.js')
script(src='bower_components/angular-cookies/angular-cookies.js')
script(src='bower_components/angular-loader/angular-loader.js')

これで問題が解決すると思います。

于 2013-08-17T10:22:41.763 に答える
15

私はまったく同じ失敗をしましたが、 yeoman angular generatorで作成された新しいプロジェクトでした。grunt test コマンドでエラーが発生し、問題は karma.conf.js が angular-cookies ( angular-resources および angular-sanitize ) の依存関係をロードしないことにあることに気付きました。したがって、このファイルのファイル配列にそれらを追加しました。

files: [
  'app/bower_components/angular/angular.js',
  'app/bower_components/angular-cookies/angular-cookies.js',
  'app/bower_components/angular-resource/angular-resource.js',
  'app/bower_components/angular-sanitize/angular-sanitize.js',
  'app/bower_components/angular-mocks/angular-mocks.js',
  'app/scripts/*.js',
  'app/scripts/**/*.js',
  'test/mock/**/*.js',
  'test/spec/**/*.js'
],

そしてそれはうまくいきます!

yeoman ユーザーの役に立てば幸いです。

于 2013-10-19T09:59:44.387 に答える