Итак, вы хотите получить доступ к угловому методу обслуживания в javascript функции A()
.
Например:
К вашим услугамкласс:
export class SettingsService{
getLanguage() {
return 'en-GB';
}
}
Ваш файл JavaScript
function A() {
settingsService.getLanguage();
}
Решение: Настраиваемое событие .
По сути, вы определяете пользовательский обработчик событий в файле javascript.И определите пользовательское событие, и dispatchEvent пользовательское событие в функции события углового щелчка.
app.component.html:
<input type="button" value='log' (click)="logclick($event)">
app.component.ts
constructor(private settings: SettingsService){}
logclick(event){
// define custom event
var customevent = new CustomEvent(
"newMessage",
{
detail: {
message: "Hello World!",
time: new Date(),
myservice: this.settings //passing SettingsService reference
},
bubbles: true,
cancelable: true
}
);
event.target.dispatchEvent(customevent); //dispatch custom event
}
javascript file:
// event handler function
function newMessageHandler(e) {
console.log(
"Event subscriber on "+e.currentTarget.nodeName+", "
+e.detail.time.toLocaleString()+": "+e.detail.message
);
//calling SettingsService.getLanguage()
console.log(e.detail.myservice.getLanguage());
}
//adding listener to custom event.
document.addEventListener("newMessage", newMessageHandler, false);
Пример вывода:
Event subscriber on #document, 9/11/2018, 11:31:36 AM: Hello World!
en-GB
Примечание: Я не добавил раздел для динамической загрузки файла JavaScript.Я предполагаю, что вы уже можете сделать это из ваших комментариев.