0

Breeze のドキュメントに基づいてfieldsWithErrors、エンティティのプロパティ ( ) にクライアント側の検証エラーを追加する次のソリューションがあります。これはうまく機能し、特定のプロパティに関連するエラーを取得し、css クラスを適用して検証エラーをユーザーに示すことができます。episodeManagerEntityManagerReminderあり、私の存在です。

episodeManager.metadataStore.registerEntityTypeCtor("Reminder", sr.Reminder, function (entity) {

    entity.fieldsWithErrors = ko.observableArray([]);

    entity.entityAspect.validationErrorsChanged.subscribe(function () {

        entity.fieldsWithErrors.removeAll();

        var errors = entity.entityAspect.getValidationErrors();

        $.each(errors, function () {

            entity.fieldsWithErrors.push(this.propertyName);
        });
    });
});

サーバー側の検証をカスタム .Net 属性の形式で追加しました (上記のクライアント側の検証エラーは[Required]、属性をルールに複製する Breeze であり、カスタムの Breeze 検証ルールはありません)。これらのサーバー側のルールに対する違反は、 のfail()後の promise でBreeze に返されsaveChanges()ます。fieldsWithErrorsこれらをすべて同じであるかのように、クライアント側のエラーと一緒にエンティティ プロパティに結合するきれいな方法は考えられません。これを行うもっと簡単な方法はありますか?

4

1 に答える 1

2

Breeze v 1.4.0 の時点で、サーバー側の検証の失敗は、(fail() promise で返されることに加えて) エンティティごとにクライアント側の validationResults に自動的に追加されるため、何もする必要はありません。そうしないと。

何か不足していますか?

于 2013-07-29T15:52:55.893 に答える