0

各プロパティではなく、モデル全体に​​ノックアウト検証を追加できますか。このコードを使用してビュー モデルを作成します。

    var UserViewModel = function() {
        return @Html.Raw(Json.Encode(Model.UserViewModel));
    };

   var entry = ko.mapping.fromJS(new UserViewModel());

では、検証ルールを追加してこのビュー モデルを拡張できますか? 例えば:

entry.extend('propertyName', rules...)
4

1 に答える 1

1

マッピングプラグインを使用して、好きなオブザーバブルを作成できます

var UserViewModel = function(data) {
        ko.mapping(data, {}, this);
};

次に、次のように検証を動的に作成できます

function addValidation(vm) {
   for(var index in vm) {
      var member = vm[index];
       if(ko.isObservable(member) && !ko.isComputed(member)) {
           member.extend({ required: true });

           if(typeof member() === "number") {
               member.extend({ number: true });
           }
       }
   }
};

http://jsfiddle.net/CfKmw/1/

于 2013-10-17T07:17:10.293 に答える