Я пытаюсь наследовать контроллер angularjs с использованием расширений Typcript. Но как только я продлить angularjs контроллер выдает эту ошибку:Не удается расширить контроллер angularjs в машинописном тексте
Error: Argument 'GenericLookupCtrl' is not a function, got undefined
Вот мой упрощен код родительских и дочерних классов:
Родитель первый:
module Controllers.SolMan
{
export class ParentCtrl
{
constructor(
seUIConfigsCacheService: Services.CrossCutting.UIConfigsCacheService,
seHttpService: Services.CrossCutting.HttpService,
$scope: Interfaces.IParentScope,
genericServices: Services.CrossCutting.GenericService,
$compile)
{
console.log('parent');
}
}
}
Ребенок:
module Controllers.SolMan {
export class ChildCtrl extends ParentCtrl {
constructor(
seUIQueryConfigsCacheService: Services.CrossCutting.UIConfigsCacheService,
seHttpService: Services.CrossCutting.HttpService,
$scope: Interfaces.IChildScope,
genericServices: Services.CrossCutting.GenericService,
$compile,
$injector) {
super(seUIConfigsCacheService, seHttpService, $scope, genericServices, $compile);
console.log('Child');
}
}
}
Вот как регистрируются контроллеры:
.controller('ParentCtrl', Controllers.ParentCtrl)
.controller('ChildCtrl', Controllers.ChildCtrl)
Я могу использовать простое наложение углов на контроллеры, но для вызова родительских методов из дочернего я должен продлить его, потому что иначе typescript дает ошибку, что он не может найти метод в родительском.
спасибо! добавив их в один файл, удалила ошибку. Но я хотел бы, чтобы они были в отдельных файлах. Хорошо, теперь я понимаю, вы имеете в виду, как файлы js включены в мой код, и да, на который ссылается родитель. – Haris
@Haris Я знаю, что это своего рода старый, но я недавно столкнулся с той же проблемой - и да, базовый класс был включен ранее в файл ссылки. Я понял, что реальной проблемой является то, как файлы анализируются в машинописном тексте. Вам нужно отредактировать файл решения в блокноте и гарантировать, что ваш родительский файл .ts (базовый класс) вставлен перед дочерним элементом. Первые .ts-файлы генерируются в верхней части приведенного файла main.js. Тогда это работает! Ура! – rodrigogq
@rodrigogq Я настоятельно рекомендую вам использовать файл 'reference' для сортировки файлов https://github.com/TypeStrong/grunt-ts#javascript-generation. Или использовать внешние модули для полного обхода проблемы. Https://www.youtube .com/смотреть? v = KDrWLMUY0R0 & HD = 1 – basarat