我正在尝试使用 Breeze 和 knockout 的示例
manager.executeQuery(query).then(function(result){
console.log(result);
ko.applyBindings(result);
}).fail(function(e) {
console.log(e);
alert(e);
});
在控制台中打印时。我在路径 data.XHR.result.responseJSON
中获取两个对象,在 data.results
但是在由于 knockout 绑定(bind)而创建的 View 中,我得到了第二组值填充两次。 (我在数据库中有两组值)
注意:如果我没有定义任何元数据,则此代码可以正常工作。问题出在我使用元数据的场景中
元数据
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"
}
};
最佳答案
确保您有一个在模型中定义并通过网络传递的主键。如果将这些值保留为空,当 Breeze 将它们添加到缓存并看到键相同时,它们将相互覆盖。
关于javascript - Breeze 和 knockout 未正确绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19314825/