Angular2 (TypeScript と Jade を使用) を使用してカスタム フォームを実装したいと考えています。
my-input
の代わりにカスタム フォーム コンポーネントとして作成した要素を使用し、ディレクティブをinput
追加すると、「ControlContainer のプロバイダーがありません!」という例外エラーが発生しました。次に、要素から削除すると、エラーは発生しませんでしたが、フォーム機能は機能しませんでした (バリデータなど)。ngControl
input
ngControl
input
親コンポーネント
@Component({
selector: 'top-page',
template: `
<form [ngFormModel]="myForm">
<my-input name="username" placeholder="username is here.">
</form>
`,
});
export class TopPageComponent { ... }
サブコンポーネント
@Component({
selector: 'my-input',
template: `
<label class="custom-class-1">
<div class="custom-class-2"></div>
<input type="text" id="{{name}}" placeholder="{{placeholder}}" ngControl="{{name}}" [(ngModel)]="{{name}}">
</label>
`,
});
export class MyInputComponent { ... }
試しに、コンポーネントの要素にngControlGroup
ディレクティブを追加しましたが、エラーが発生しました。(もちろん、TypeScript ファイルに書かれています。)label
my-input
import Component, Input, etc...
@Input()