2013-02-21 3 views
2

У меня есть приложение AngularJS, которое я пытаюсь проверить. Проблема в том, что всякий раз, когда я пытаюсь ввести контроллер, он дает мне пустой объект.Инъекционный контроллер дает пустой объект AngularJS

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

Я приложил образец моей установки с некоторыми комментариями в JsFiddle, и я бы очень признателен за помощь, чтобы понять это.

Fiddle

редактировать: Я тоже пытался это сделать:

beforeEach (angular.mock.module ('Контроллеры'));

Тогда я получаю: Ошибка: Нет модуля: Контроллеры

Это зафиксировано, что проблема:

beforeEach (angular.mock.module ('контроллеры'));

ответ

2

Спасибо Peter Bacon Darwin на Angular mailing list за то, что вы нашли решение. Я пытался позвонить changeView() на контроллер. Однако это область действия, которая имеет эту функцию, а не контроллер.

Еще раз спасибо.

+0

. Да, спасибо, это более странно. Так или иначе, это работает. – Artemis

0

на основе кода,

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

испытательной конфигурации

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

вместо этого следует

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

со строчной 'C', так как это фактическое имя этот модуль. Вы также можете использовать myApp, так как это зависит от controllers.

+0

Ах, конечно. Это фиксировало проблему контроллера No module Controller, но я все еще получаю пустой $ controller – kimpettersen

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