2

そよ風とノックアウトを使ってサンプルを試していました

manager.executeQuery(query).then(function(result){
    console.log(result);    
    ko.applyBindings(result);
}).fail(function(e) {
    console.log(e); 
     alert(e);  
});

コンソールで印刷中。パスに 2 つのオブジェクトがあり、パスdata.XHR.result.responseJSONに 2 つのオブジェクトがありますdata.results

しかし、ノックアウト バインディングの結果として作成されたビューでは、値の 2 番目のセットが 2 回入力されています。(私はデータベースに2つの値のセットを持っています)

注: メタデータを定義していない場合、このコードは機能します。問題は、メタデータを使用するシナリオにあります

メタデータ

var sample=sample||{};sample.metadata=
{
    "dataServices":[
        {
            "serviceName":"/sample",
            "hasServerMetadata":true,
            "jsonResultsAdapter":"webApi_default",
            "useJsonp":false
        }
    ],
    "structuralTypes":[
        {
            "shortName":"Employee",
            "autoGeneratedKeyType":"None",
            "defaultResourceName":"Employee",
            "dataProperties":[
                {
                    "name":"id",
                    "dataType":"MongoObjectId",
                    "isNullable":false,
                    "defaultValue":"",
                    "isPartOfKey":true,
                    "validators":[
                        {
                            "name":"required"
                        }
                    ]
                },
                {
                    "name":"name",
                    "dataType":"String",
                    "maxLength":100,
                    "validators":[
                        {
                            "maxLength":100,
                            "name":"maxLength"
                        }
                    ]
                },
                {
                    "name":"age",
                    "dataType":"String",
                    "maxLength":100,
                    "validators":[
                        {
                            "maxLength":100,
                            "name":"maxLength"
                        }
                    ]
                }
            ]
        }
       ], 
    "resourceEntityTypeMap":{
        "Employee":"Employee"
    }
};
4

1 に答える 1