Проблема, с которой вы столкнулись, связана с компилятором машинописи.Чтобы обойти это, вы можете инициализировать коллапс и другие элементы в базовом файле JS.Вам нужно будет импортировать этот файл, поэтому создайте его либо в папке ресурсов (и свяжите его в вашем index.html
), либо в другом месте и упомяните его в части scripts
вашего angular.json
.
Для инициализации свертывания содержимое этого JS-файла будет следующим:
$(document).click(function(e) {
if (!$(e.target).is('.panel-body')) {
$('.collapse').collapse('hide'); //throws error
}
});
Это инициализирует все функции Jquery, когда документ будет готов.
Если вы хотите сделать это в определенный момент в угловом потоке, оберните вызов в функцию следующим образом:
function collapse() {
$(document).click(function(e) {
if (!$(e.target).is('.panel-body')) {
$('.collapse').collapse('hide'); //throws error
}
});
}
Чтобы вызвать его в файле Typescript, вынужно сначала объявить функцию.Например, чтобы инициализировать функции jquery в ngOnInit()
:
declare function collapse();
ngOnInit() {
collapse();
}
Таким образом, вам не нужно никуда вставлять import 'bootstrap';
, поэтому вы не сломаете другие компоненты.