2

テストしようとしているAngularJSアプリがあります。問題は、コントローラーを挿入しようとすると、空のオブジェクトが返されることです。

beforeEach( inject(function($rootScope, $controller) {
   console.log($controller) // {}
   scope = $rootScope.$new();
   ctrl = $controller('MenuCtrl', {
     $scope: scope
   });
   console.log(ctrl) // {}
}));

JsFiddle にいくつかのコメントを付けてセットアップのサンプルを添付しました。これを理解するための助けをいただければ幸いです。

フィドル

編集:私もこれをやろうとしました:

beforeEach(angular.mock.module('Controllers'));

次に、次のようになります: エラー: モジュールがありません: コントローラ

これはその問題を修正しました:

beforeEach(angular.mock.module('controllers'));

4

2 に答える 2

2

これに対する解決策を見つけてくれたAngular メーリング リストの Peter Bacon Darwin に感謝し ます。changeView()私はコントローラーを呼び出そうとしていました。ただし、この機能を持つのはスコープであり、コントローラーではありません。

再度、感謝します。

于 2013-02-21T22:10:59.813 に答える
0

あなたのコードに基づいて、

var Controllers = angular.module('controllers', []);

テスト構成

beforeEach(angular.mock.module('Controllers'));

代わりに

beforeEach(angular.mock.module('controllers'));

これは、このモジュールの実際の名前であるため、小文字の 'C' を使用します。myAppに依存するため、 を使用することもできますcontrollers

于 2013-02-21T17:38:55.637 に答える