我通过定义模型(到目前为止只有一个实体/模型)提供了元数据:
function init(store){
addSerieType(store);
}
function addSerieType(store){
store.addEntityType({
shortName: "Serie",
namespace: "xxx",
defaultResourceName: "Serien",
//autoGeneratedKeyType: breeze.AutoGeneratedKeyType.Identity,
dataProperties:{
id: { dataType: breeze.DataType.Int32, isNullable: false, isPartOfKey: true },
kat: { dataType: breeze.DataType.Int32, isNullable: false },
bez: { dataType: breeze.DataType.String, maxLength: 64, isNullable: false,
validators: [ breeze.Validator.required(), breeze.Validator.maxLength( {maxLength: 64})] // Add client-side validation to 'title'
},
jahr: { dataType: breeze.DataType.Int32, isNullable: false },
grp: { dataType: breeze.DataType.Int32, isNullable: false },
bem: { dataType: breeze.DataType.String, maxLength: 1024, isNullable: false,
validators: [ breeze.Validator.maxLength( {maxLength: 1024})] // Add client-side validation to 'title'
}
}
});
store.setEntityTypeForResourceName("Serien", "Serie");
store.registerEntityTypeCtor("Serie", null, serieInitializer);
}
function serieInitializer(serie){
serie.errorMessage = ko.observable();
}
return{
init: init
}
从 PHP/Doctrine 返回的 JSON 包括列$id="Serie.id"
(例如 1,2,3 ...)和$type="Serie"
. 所有列和属性名称均为小写,NamingConvention 设置为无。我得到一个空实体 - 具有提供的默认值。
对于测试,我创建了一个像这样的新实体:
var s = manager.createEntity("Serie", { id: 42, bez: "Test1", jahr: 2999} );
这行得通,我ko.observable
在实体中获取属性,并将实体物化到缓存中。
为什么我不能从 JSON 结果中获取实体?我已经将服务器元数据设置为 false,提供了一个模型,一切都匹配,但是......实体是空的。完全没有错误。有什么提示吗?谢谢。