@lMoJlo4HuKl

Как получить scope или $ctrl в тестах angularjs?

Как получить скоуп или $ctrl или хотя бы что то из компоннета(его контроллера) в тесте ?

app.component('authComponent', {
    templateUrl: 'app/auth/auth.html',
    controller: authCtrl
});

function authCtrl()
 var $ctrl = this;
 this.data = [1,2,3];
}


Тест :

describe('component: heroDetail', function() {

  var $componentController;

  beforeEach(module('globalApp'));
  beforeEach(inject(function(_$componentController_) {
    $componentController = _$componentController_;
  }));

  it('should expose a `hero` object', function() {

    var ctrP = $componentController('authCtrl');

    expect(ctrP.data).toBeDefined();

  });
});


Ошибка:

Unknown provider: authCtrlDirectiveProvider <- authCtrlDirective

При этом ctrP = undefined
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
Получать контроллер нужно по имени компонента т.е.
var ctrP = $componentController('authComponent');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы