私はこのすべてを正しく表現しているかどうかはわかりません。 Angular2でロットが変更されました。フォームデータをコンポーネントのサービスに渡そうとしています。私は "Generate"ボタンをクリックするたびにこのデータを渡したいと思います。私は、フォームデータをオブジェクトにカプセル化し、そのオブジェクトをコンポーネントに注入されたサービスに渡したいと考えています。サービスはすべての重い持ち上げを実行します。すべてのコンポーネントが実際に出力を表示します。Angular2がクリックハンドラにデータを渡しています
generator.component.ts
export class Generator {
passwords: string[]; // output array
passwordsObj: Object = { // form data passed to service
letters: "",
numbers: "",
symbols: "",
amount: ""
};
constructor(gs: GeneratorService) {
this.passwords = gs.generatePasswords(passwordsObj); // originally hard-coded, I want to now trigger this method when the "Generate" button is clicked
}
clicked(obj) {
// handle the click event?
}
}
私はgeneratePasswords
メソッドは、引数としてpasswordsObj
を取りたいです。私はそれを行う方法を知っています。コンポーネントのボタンをクリックしたときに、サービスのgeneratePasswords
メソッドをトリガする方法がわかりません。
generator.component.htmlスニペット
<button type="submit" (click)="clicked(passwordsObj)">Generate</button>
ええ、ありがとう@ジーンフィリップ編集のため。 –
良い答えをありがとう。 – BrianRT
私はhttp://stackoverflow.com/questions/36109641/angular2-component-one-way-binding-or-inputに関する他の質問がありますが、それを複製したくないです(私は他の質問にコメントすることはできません)まだ)。私は ''のようなユーザ入力をバインドしようとしていますが、動作していません。私はそれがデータソースにユーザー入力をバインドすると思った。私は双方向バインディングを使いたくないです( '((ngModel))'を避けてください)。そのために '@ Input'を使用する必要がありますか? – BrianRT