2017-03-29 32 views
7

Ive đã làm việc thông qua hướng dẫn siêu anh hùng Góc. Tất cả đều hoạt động.ts2304 không thể tìm thấy tên 'OnInit'

Nếu tôi đóng cửa sổ cmd chạy NPM, sau đó mở lại cửa sổ CMD và phát hành lại lệnh START NPM tôi nhận được hai lỗi

src/app/DashBoard.component.ts(12,44) TS2304 : Cannot find name 'OnInit'. 
src/app/hero-list.component.ts(16, 434) TS2304 : Cannot find name 'OnInit'. 

tôi có thể giải quyết điều này bằng cách loại bỏ

Implements OnInit 

từ cả hai lớp này, chạy NPM bắt đầu thêm lại chúng (chỉ cần CTL Z trong trình chỉnh sửa) thực hiện một số thay đổi, lưu. Ứng dụng biên dịch lại và tôi tắt và chạy.

Tôi có 4 lớp thực hiện chức năng này. Tôi đã nghiên cứu chúng và không thể tìm ra những gì làm cho 2 thất bại ...

Tôi đã đọc bài viết mà tham khảo TS2304, nhưng điều này có vẻ là một chức năng chung/không tìm thấy Variable/Symbol nhắn ...

Tôi không biết phải đăng bài gì, Im vui lòng đăng bất kỳ mã nào.
Đây có phải là do sai sót trong module này phụ thuộc vào (hero.ts)

Dưới đây là một lớp học mà là thất bại theo cách này Đây là hero-list.component.ts nộp (tại các điểm khác nhau trong ví dụ demo/trực tuyến, tên này cũng được đặt tên là Heroes.component ..)

import { Component } from '@angular/core'; 
import { Router } from '@angular/router'; 

import { Hero } from './hero'; 
import { HeroService } from './hero.service'; 

@Component({ 
    selector: 'hero-list', 
    templateUrl: './hero-list.component.html' , 
    providers: [HeroService], 
    styleUrls: [ './hero-list.component.css'] 
}) 



export class HeroListComponent implements OnInit { 

    heroes : Hero[]; 
    selectedHero: Hero; 

    constructor(
     private router : Router , 
     private heroService: HeroService 
     ) { } 

    ngOnInit(): void { 
     this.getHeroes(); 
    } 

    onSelect(hero: Hero): void { 
     this.selectedHero = hero; 
    } 

    getHeroes(): void { 
     this.heroService.getHeroes().then(heroes => this.heroes = heroes); 
    } 

    gotoDetail() { 
     this.router.navigate(['/detail', this.selectedHero.id]); 
    } 

    add(name: string): void { 
     name = name.trim(); 
     if (!name) { return; } 
     this.heroService.create(name) 
      .then(hero => { 
       this.heroes.push(hero); 
       this.selectedHero = null; 
      }); 
    } 
    delete(hero: Hero): void { 
     this.heroService 
      .delete(hero.id) 
      .then(() => { 
       this.heroes = this.heroes.filter(h => h !== hero); 
       if (this.selectedHero === hero) { this.selectedHero = null; } 
      }); 
    } 
} 
+1

Bạn sẽ nhận được các lỗi tương tự nếu bạn sai chính tả 'OnInit'. Trong trường hợp của tôi, tôi đã sử dụng 'onInit'. Hy vọng nó sẽ giúp ai đó. –

Trả lời

16

Bạn phải nhập OnInit.

import { Component, OnInit } from '@angular/core'; 
+1

wow. điều đó phức tạp. Cảm ơn Eduardo. :-) – greg

2

Các tutorial không đề cập đến bạn cần phải thêm việc nhập khẩu OnInit đến tập tin typescript app.component.ts:

import { Component, OnInit } from '@angular/core'; 
Các vấn đề liên quan