Добавление Javascript или импорт файла js в компонент Angular 9 - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в Angular и создаю проект, в котором используется маршрутизация. Я хотел бы импортировать файл js из src / assets / js / custom. js

Я создал службу, которая импортирует такой инъекционный файл

test.service .ts

import { Injectable } from '@angular/core';

@Injectable()
export class TestService {
    testFunction() {
      console.log('Test');
    }
}

home.compontents.ts выглядит как

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { TestService } from './test.service';

declare var require: any

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss'],
  providers: [TestService]

})

export class HomeComponent implements OnInit {

  constructor() {private testService: TestService}

  ngOnInit(): void {
    this.testService.testFunction();

  }

}

Но я получаю следующую ошибку:


17   constructor() {private testService: TestService}
                    ~~~~~~~
src/app/home/home.component.ts:19:13 - error TS1005: ';' expected.

19   ngOnInit(): void {
               ~
src/app/home/home.component.ts:20:9 - error TS1005: ':' expected.

20     this.testService.testFunction();
           ~
src/app/home/home.component.ts:20:36 - error TS1005: ',' expected.

20     this.testService.testFunction();
                                      ~
src/app/home/home.component.ts:24:1 - error TS1128: Declaration or statement expected.

24 }
   ~

Я пробовал так много разных пути из гугл поисков и ничего не придумали. Может ли кто-нибудь помочь?

ОБНОВЛЕНИЕ

Спасибо за обновления, я обновил конструктор, но получаю сообщение об ошибке

ERROR in src/app/home/home.component.ts:3:29 - error TS2307: Cannot find module './test.service' or its corresponding type declarations.

3 import { TestService } from './test.service';

Я не уверен если я иду правильным путем. Каждый компонент, который я использую, имеет 1 или 2 js файлов, которые мне нужно импортировать. Как лучше всего это сделать?

Ответы [ 3 ]

3 голосов
/ 06 августа 2020

Служба, переданная в качестве параметра в конструкторе класса для внедрения в качестве зависимости.

constructor(private testService: TestService) {}
2 голосов
/ 06 августа 2020

Конструктор написан неправильно. Пожалуйста, напишите это, как указано ниже

 constructor(private testService: TestService) {}

Кроме того, вы предоставили услугу как @Injectable(), тогда вы должны определить услугу в файле app.module.ts. В качестве альтернативы вы можете указать

@Injectable({
  providedIn: 'root'
})

. Это исключит добавление услуги в провайдерах.

0 голосов
/ 06 августа 2020

Конструктор home.compontents.ts должен выглядеть следующим образом:

constructor(private testService: TestService) {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...