web-dev-qa-db-ja.com

Angular2例外文字列のプロバイダーがありません

この非常に単純なコードを使用して、ng-cliで作成した新しいアプリを入手しました^^

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

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  constructor(private my: string) {}
} 

そして、私はコンソールにいます

例外:文字列のプロバイダーがありません!

コードにエラーは表示されないので、何が問題なのですか?

Ng-bookで読むことができます

export class Article { 
  title: string; 
  link: string; 
  votes: number;
  constructor(title: string, link: string, votes?: number) { 
    this.title = title;
    this.link = link;
    this.votes = votes || 0;
  }
}

を見てみましょう

https://github.com/Microsoft/TypeScriptSamples/blob/master/greeter/greeter.ts

10
Whisher

コンストラクターのエラー:

export class AppComponent {
  constructor(private my: string) {}
} 

private my: stringはコンストラクターに注入する必要はありませんが、外部に挿入する必要があります。ここでは、コンポーネントで使用する変数であると想定しています。

export class AppComponent {
  private my: string;
  constructor() {
    this.my = 'Hello!'; // if you want to assign a value (in the constructor) to your string, do it here!
  }
} 

最初から Tutorial から始めることをお勧めします。そのため、Angular :)

編集、あなたが追加した後者の部分は、例えば、Articleクラスの型付けされたオブジェクトの、コンポーネントではなくオブジェクトを入力するためのクラスです、これは有効な構文です:

export class Article { 
  title: string; 
  link: string; 
  votes: number;
  constructor(title: string, link: string, votes?: number) { 
    this.title = title;
    this.link = link;
    this.votes = votes || 0;
  }
}

次に、このクラスをAppComponentにインポートし、を使用してArticleオブジェクトを割り当てることができます。

import { Component } from '@angular/core';
import { Article } from './your.path'

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {

  article: Article = new Article('titleHere', 'linkHere', 3)

  constructor() {}
}
16
AJT82

私はこのエラーがあり、それを解決できます

ビルドプロセスを再実行するだけです

cntrl + cで停止する

およびionic serve再び

またはangularコマンド