Я исследую, как использовать Жасмин с Кармой. Я пытаюсь ввести область в свой контроллер, и откуда-то я взял этот код...
var scope = { message: 'hello' };
beforeEach(angular.mock.module('myApp'));
beforeEach(angular.mock.inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
$controller('myController', { $scope: scope });
}));
Проблема заключается в том, что область обрывается линией...
scope = $rootScope.$new();
Поэтому я могу прокомментировать это, но мне интересно, для чего нужна эта линия? Когда я хочу называть $rootscope.$new()
? Я понимаю, что это связано с изоляцией, но я не получаю практических приложений.
ОБНОВЛЕНИЕ: Как указывает Тим ниже, это проблема, потому что я объявил свою собственную область. Поэтому я могу изменить код, чтобы быть....
var scope;
beforeEach(angular.mock.module('myApp'));
beforeEach(angular.mock.inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
scope.message = 'hello';
$controller('myController', { $scope: scope });
}));
И это работает больше, чем ожидалось, но мне все еще интересно, какой лучший подход? Что такое $rootscope.$new()
даже для?