正しく、私はそれが一般的なhtml5コントロールと同じように動作することを意味しました。 たとえば、私の場合、カスタム送信ボタンを作成しようとしました。このカスタム送信ボタンは、フォームを送信する際に読み込みアイコンを表示します。 だからそのために、私は、コントロールのテンプレートでこれをやった:角度2のカスタムコントロールを正しく実装する方法
<button type="submit" class="btn btn-primary" [ngClass]="{disabled: disabled || submitting}" [disabled]="disabled || submitting">
<span *ngIf="submitting"><i class="glyphicon glyphicon-refresh spinning"></i></span>
{{displayText}}
とコードを:
import { Component, Input, EventEmitter, OnInit} from 'angular2/core';
@Component({
selector: 'submit-button',
templateUrl: 'app/shared/submit-button/submit-button.html',
styleUrls: ['app/shared/submit-button/submit-button.style.css']
})
export class SubmitButtonComponent {
@Input() submitting: boolean = false;
@Input() displayText: string = 'Submit';
@Input() disabled: boolean = false;
}
そして、私はこれをやった:
<submit-button [submitting]="submitting" [disabled]="!myForm.form.valid" [displayText]="'Submit'"></submit-button>
"disabled"属性をコンポーネント自体から内部の内部コントロールにマップする方法を参照してください。 テンプレート?まあ、私はそれが正しいアプローチであるかどうかはわかりません。なぜなら、これはすべての単一のコントロール属性に対して行う必要があるからです。私がここで尋ねるのは、コンポーネントを使用するときに設定した属性をコンポーネント内部のコントロールにシームレスにマップする方法があるかどうかです。
たとえば、ボタンの代わりにテキスト入力があり、それを必要に応じて設定したいとします。必要とされるのはコンポーネント内部の入力ではなくコンポーネントタグ自体の上にあるため、うまく動作しません。
ありがとうございます。