mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 07:40:22 +00:00
The priority of ngInit is adjusted to occur before ngInclude, and after ngController. This enables ngInit to initiallize values in a controller's scope, and also to initiallize values before ngInclude executes. Closes #5167 Closes #5208
42 lines
1.4 KiB
JavaScript
42 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
describe('ngInit', function() {
|
|
var element;
|
|
|
|
|
|
afterEach(function() {
|
|
dealoc(element);
|
|
});
|
|
|
|
|
|
it("should init model", inject(function($rootScope, $compile) {
|
|
element = $compile('<div ng-init="a=123"></div>')($rootScope);
|
|
expect($rootScope.a).toEqual(123);
|
|
}));
|
|
|
|
|
|
it("should be evaluated before ngInclude", inject(function($rootScope, $templateCache, $compile) {
|
|
$templateCache.put('template1.tpl', '<span>1</span>');
|
|
$templateCache.put('template2.tpl', '<span>2</span>');
|
|
$rootScope.template = 'template1.tpl';
|
|
element = $compile('<div><div ng-include="template" ' +
|
|
'ng-init="template=\'template2.tpl\'"></div></div>')($rootScope);
|
|
$rootScope.$digest();
|
|
expect($rootScope.template).toEqual('template2.tpl');
|
|
expect(element.find('span').text()).toEqual('2');
|
|
}));
|
|
|
|
|
|
it("should be evaluated after ngController", function() {
|
|
module(function($controllerProvider) {
|
|
$controllerProvider.register('TestCtrl', function($scope) {});
|
|
});
|
|
inject(function($rootScope, $compile) {
|
|
element = $compile('<div><div ng-controller="TestCtrl" ' +
|
|
'ng-init="test=123"></div></div>')($rootScope);
|
|
$rootScope.$digest();
|
|
expect($rootScope.test).toBeUndefined();
|
|
expect(element.children('div').scope().test).toEqual(123);
|
|
});
|
|
});
|
|
});
|