Breeze のドキュメントに基づいてfieldsWithErrors
、エンティティのプロパティ ( ) にクライアント側の検証エラーを追加する次のソリューションがあります。これはうまく機能し、特定のプロパティに関連するエラーを取得し、css クラスを適用して検証エラーをユーザーに示すことができます。episodeManager
私EntityManager
でReminder
あり、私の存在です。
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
これらをすべて同じであるかのように、クライアント側のエラーと一緒にエンティティ プロパティに結合するきれいな方法は考えられません。これを行うもっと簡単な方法はありますか?