Spec-Zone.ru › Angular.js 1.6

Улучшить эту документацию Просмотреть исходный код $controller

  1. сервис в модуле 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

Если переданная функция, она рассматривается как конструктор контроллера. В противном случае — как строка, используемая для получения конструктора контроллера с помощью следующих шагов:

  • проверка, зарегистрирован ли контроллер с заданным именем через $controllerProvider
  • проверка, возвращает ли вычисление строки на текущем контексте конструктор
  • если $controllerProvider#allowGlobals, проверка window[constructor] в глобальном window объекте (устарело, не рекомендуется)

    Строка может использовать синтаксис controller as property, где экземпляр контроллера публикуется в виде указанного свойства в scope; scope должен быть внедрён в параметр locals для корректной работы.

locals Object

Локальные данные для внедрения в контроллер.

bindings
(необязательно)
Object

Свойства для добавления к экземпляру контроллера. Используется для моделирования функции bindToController и упрощения определённых видов тестов.

Возвращаемое значение

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API