Improve this Doc View Source $controller
- service in module ngMock
A decorator for $controller with additional bindings parameter, useful when testing controllers of directives that use bindToController.
Depending on the value of preAssignBindingsEnabled(), the properties will be bound before or after invoking the constructor.
// Directive definition ...
myMod.directive('myDirective', {
controller: 'MyDirectiveController',
bindToController: {
name: '@'
}
});
// Controller definition ...
myMod.controller('MyDirectiveController', ['$log', function($log) {
this.log = function() {
$log.info(this.name);
};
}]);
// In a test ...
describe('myDirectiveController', function() {
describe('log()', function() {
it('should write the bound name to the log', inject(function($controller, $log) {
var ctrl = $controller('MyDirectiveController', { /* no locals */ }, { name: 'Clark Kent' });
ctrl.log();
expect(ctrl.name).toEqual('Clark Kent');
expect($log.info.logs).toEqual(['Clark Kent']);
}));
});
});
Usage
$controller(constructor, locals, [bindings]);
Arguments
| 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 instance. This is used to simulate the |
Returns
Object |
Instance of given controller. |
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ngMock/service/$controller