私は角2を学習していて、サンドボックスプロジェクトで遊んでいて、Javaや他のOOP言語のような別のクラスでクラスを使用する方法が不思議でした。角2 - Typescript基本的なテストデータベースクラス
私はそうのようなクラスMockDatabaseをお持ちの場合:
export class MockDatabase {
constructor(private list: Restaurant[]){
this.list.push({ id: 1, name: "Chinese", tags: ["Chinese"] });
this.list.push({ id: 2, name: "Mexican", tags: ["Mexican"] });
this.list.push({ id: 3, name: "Italian", tags: ["Italian"] });
this.list.push({ id: 4, name: "American", tags: ["American"] });
}
getList(): Restaurant[] {
return this.list;
}
}
と、私はそうのようなサービス・クラスでそのクラスを使用する:このコンポーネントで使用されている
@Injectable()
export class RestaurantsService {
constructor(private db: MockDatabase){
}
getAllRestaurants(): Restaurant[] {
return this.db.getList();
}
}
:
@Component({
selector: 'restaurants',
templateUrl: 'restaurants.html',
providers: [RestaurantsService, PreferencesFilterService]
})
export class RestaurantsComponent implements OnInit{
restaurants: Restaurant[];
constructor(
private restaurantsService: RestaurantsService,
private preferencesFilterService: PreferencesFilterService
) {}
ngOnInit(): void {
this.restaurants = this.restaurantsService.getAllRestaurants();
}
filterRestaurants(): void {
this.restaurants = this.preferencesFilterService.getFilteredRestaurants();
}
「MockDatabaseのプロバイダがありません」というエラーが表示されますが、プロバイダとしてRに追加した場合estaurantsComponent別のエラー「Array()のプロバイダがありません」というエラーが表示されるので、ここで何か間違っていると思います。
私は、ウェブ開発全体にまったく新しいものですから、角度2でこれを設計するはずの基本的な誤解があるかもしれないと思います。
私はオンラインで良いリソースを見つけるのに困っていたので、正しい方向への助けや指導をいただければ幸いです。あなたのお時間をありがとうございました。
あなたのケースでインターフェイスモデルが動作するか、フルクラスを実装しようとしていますか?インターフェイスの例: 'export interface Restaurant {Location:string;名前:文字列。 } ' – jhhoff02
@ jhhoff02 OOP言語のようなクラスを実装しようとするのは可能でしょうか? – Biggytiny