【发布时间】:2014-06-12 18:02:23
【问题描述】:
我通过定义一个模型(目前只有一个实体/模型)来提供元数据:
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,提供了一个模型,一切都匹配,但是......实体是空的。完全没有错误。有什么提示吗?谢谢。
【问题讨论】:
标签: javascript breeze