Sto cercando come usare Jasmine con Karma. Sto cercando di iniettare un ambito nel mio controllore e da qualche parte ho raccolto questo codice ...
var scope = { message: 'hello' };
beforeEach(angular.mock.module('myApp'));
beforeEach(angular.mock.inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
$controller('myController', { $scope: scope });
}));
Il problema è che il campo di applicazione è stato spazzato via con la linea ...
scope = $rootScope.$new();
Quindi posso commentare, ma mi chiedo a cosa serve l'uso di questa linea? Quando dovrei chiamare lo $rootscope.$new()
? Capisco che faccia dell'isolamento, ma non ne ottengo realmente le applicazioni pratiche.
AGGIORNAMENTO: Come indicato di seguito, Tim è un problema perché ho dichiarato il mio ambito. Così posso modificare il codice per essere ....
var scope;
beforeEach(angular.mock.module('myApp'));
beforeEach(angular.mock.inject(function ($rootScope, $controller) {
scope = $rootScope.$new();
scope.message = 'hello';
$controller('myController', { $scope: scope });
}));
e che funziona più come previsto, ma sto ancora chiedendo cosa l'approccio migliore è? Che cosa è $rootscope.$new()
anche per?
'Il problema è il campo di applicazione è stato spazzato via con la Line' mi piacerebbe che il 'problema' reale è che si * definito * il tuo 'var scope' –
Okay, questo ha senso ora che dici. Con questo in mente quale è l'approccio migliore? – Exitos
Perché non usi semplicemente Yeoman e lasci che metta a punto la tua configurazione jasmine/karma? – mortsahl