私はドロップダウン選択メニューのコンポーネントを作っています。私は、メニューのオプションを動的にロードできるようにしたい。私は最初、@Inputを使って、データを取得するために必要なコントローラメソッドのURLを渡すことで、これを行うことを考えていました。ここで私は今のところ(簡体字)しているものです:角2 - @InputでURLを渡す
export class DropdownInput {
// List of options for the dropdown to have
public options: InputOption[];
// Url for controller method to get options
@Input() optionSrc: string;
// Get list of options on construction
constructor(http: Http) {
http.get(this.optionSrc).subscribe(result => {
this.options = result.json();
});
}
}
そして、私はこのように、このドロップダウンコンポーネントを使用しようとしていた。
<dropdown-input
[optionSrc]="/api/LogViewer/GetOpts">
</dropdown-input
をしかし、私はエラーが取得しています:「パーサーエラー:予期しないトークンを/ [/ api/LogViewer/GetOpts]の1列目にあります。私はまた、「『/ API/LogViewerの/ getoptsは』」としてそれをやって試してみたが、これはエラーで失敗「にSyntaxError:予期しないトークン<をJSONに位置0にJSON.parseで()」。私は、親クラスの変数にurlを入れ、それにバインドするときに同じエラーが発生します。
これは可能ですか?あるいは私は自分の目標を達成する別の方法を試みるべきですか?
ありがとうございます!私が持っていた
、同じよう)" はどこから来たのですか?私はこのhttp.getの結果を購読していますからですか? –
csy9
ngOnInit()
を使用することを検討すべきですスペースを使わずにこれを試してみましたが、残念ながら私はまだエラーが発生しています: "SyntaxError:予期しないトークン何かがcsy9 @ – micronyks
..あなたは、私は推測まだ私たちに示していないこれがある私は、あなたが実際にそれがJSONではありませんしながら、JSONに 'result'を解析しようとしているので、あなたがエラーを取得していると信じています。 'this.options = result;'を試して、それがうまくいくかどうか私たちに知らせてください。または単に 'console.log(result);'そしてあなたが得たものを見てください。 –