5205a9e65f
BREAKING CHANGE: Previously, route configuration took a controller constructor function as the value of `component` in a route definition: ``` $route.config([ { route: '/', component: MyController } ]) ``` Based on the name of the controller, we used to use a componentMapper service to determine what template to pair with each controller, how to bind the instance to the $scope. To make the 1.x router more semantically alligned with Angular 2, we now route to a directive. Thus a route configuration takes a normalized directive name: ``` $route.config([ { route: '/', component: 'myDirective' } ]) ``` BREAKING CHANGE: In order to avoid name collisions, lifecycle hooks are now prefixed with `$`. Before: ``` MyController.prototype.onActivate = ... ``` After: ``` MyController.prototype.$onActivate = ... ``` Same for `$canActivate` (which now lives on the directive factory function), `$canDeactivate`, `$canReuse`, and `$onDeactivate` hooks.
39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
describe('$$directiveIntrospector', function () {
|
|
|
|
var $compileProvider;
|
|
|
|
beforeEach(function() {
|
|
module('ng');
|
|
module('ngComponentRouter');
|
|
module(function(_$compileProvider_) {
|
|
$compileProvider = _$compileProvider_;
|
|
});
|
|
});
|
|
|
|
it('should call the introspector function whenever a directive factory is registered', inject(function ($$directiveIntrospector) {
|
|
var spy = jasmine.createSpy();
|
|
$$directiveIntrospector(spy);
|
|
function myDir(){}
|
|
$compileProvider.directive('myDir', myDir);
|
|
|
|
expect(spy).toHaveBeenCalledWith('myDir', myDir);
|
|
}));
|
|
|
|
it('should call the introspector function whenever a directive factory is registered with array annotations', inject(function ($$directiveIntrospector) {
|
|
var spy = jasmine.createSpy();
|
|
$$directiveIntrospector(spy);
|
|
function myDir(){}
|
|
$compileProvider.directive('myDir', ['foo', myDir]);
|
|
|
|
expect(spy).toHaveBeenCalledWith('myDir', myDir);
|
|
}));
|
|
|
|
it('should retrieve a factory based on directive name', inject(function ($$directiveIntrospector) {
|
|
function myDir(){}
|
|
$compileProvider.directive('myDir', ['foo', myDir]);
|
|
expect($$directiveIntrospector.getTypeByName('myDir')).toBe(myDir);
|
|
}));
|
|
});
|