5

TypeScript で Angular 2 と NodeJS を使用するプロジェクトに取り組んでいます。

Angular2 はデコレータを使用してコンポーネントを定義します。同じ方法でドメイン オブジェクトの検証ロジックを表現できるようにしたいと考えています。これは、検証ルールを 1 回表現して、サーバー側とクライアント側の両方で使用できるため、便利です。

次のようにマークアップで必須フィールドを表現する代わりに:

<input required [(ng-model)]="selectedHero.name"></input>

私はこれをしたいと思います:

class Hero {
    id: number;

    @Required
    name: string;
}

入力要素に必要な属性を適用するためにメタデータを読み取るディレクティブを作成する方法と、NodeJS で検証エラーを作成する方法を理解しようとしています。任意のガイダンスをいただければ幸いです。ご協力ありがとうございました。

4

1 に答える 1

3

問題は次の 2 つで構成されています。 - デコレータに基づくモデルの検証 - UI での結果の表示

まず、任意の typescript バリデーターを使用できます。例: クラスバリデータ。2 番目の部分はまだ把握しようとしています。

編集:調べた後、次のようにします:デコレーターにクラスバリデーターを使用し、角度2フォームビルダーを使用してフォームを作成し、フォームのvalueChangedイベントにアタッチし、イベントでバリデーターを実行し、それぞれに設定します受け取った検証エラー、対応するフォームコントロール エラー。(setErrors メソッドを探します。)

フォームを変更すると、すべての入力が再評価されることに注意してください。これは改善する必要があるかもしれません。さらに、そのすべてのロジックをサービスに抽象化し、typescript クラスに基づいてフォームを提供し、必要なものすべてを接続します。

于 2016-10-15T07:49:11.063 に答える