Улучшить эту документацию Просмотреть исходный код $controller
- сервис в модуле ngMock
Обзор
Декоратор для $controller с дополнительным параметром bindings, полезным при тестировании контроллеров директив, использующих bindToController.
В зависимости от значения preAssignBindingsEnabled(), свойства будут привязаны до или после вызова конструктора.
// 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']);
}));
});
});
Использование
$controller(constructor, locals, [bindings]);
Аргументы
| Параметр | Тип | Подробности |
|---|---|---|
| конструктор | function()string | Если переданная функция, она рассматривается как конструктор контроллера. В противном случае — как строка, используемая для получения конструктора контроллера с помощью следующих шагов:
|
| locals | Object | Локальные данные для внедрения в контроллер. |
| bindings (необязательно) | Object | Свойства для добавления к экземпляру контроллера. Используется для моделирования функции |
Возвращаемое значение
Object |
Экземпляр заданного контроллера. |
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ngMock/service/$controller