A decorator for $controller
with additional bindings
parameter, useful when testing
controllers of directives that use bindToController
.
// Directive definition ...
myMod.directive('myDirective', {
controller: 'MyDirectiveController',
bindToController: {
name: '@'
}
});
// Controller definition ...
myMod.controller('MyDirectiveController', ['$log', function($log) {
$log.info(this.name);
}]);
// In a test ...
describe('myDirectiveController', function() {
it('should write the bound name to the log', inject(function($controller, $log) {
var ctrl = $controller('MyDirectiveController', { /* no locals */ }, { name: 'Clark Kent' });
expect(ctrl.name).toEqual('Clark Kent');
expect($log.info.logs).toEqual(['Clark Kent']);
}));
});
$controller(constructor, locals, [bindings]);
Param | Type | Details |
---|---|---|
constructor | function()string |
If called with a function then it's considered to be the controller constructor function. Otherwise it's considered to be a string which is used to retrieve the controller constructor using the following steps:
|
locals | Object |
Injection locals for Controller. |
bindings
(optional)
|
Object |
Properties to add to the controller before invoking the constructor. This is used
to simulate the |
Object | Instance of given controller. |