有一些关于此的帖子,但在我的项目中没有任何具体的内容。
我在 Breeze 上阅读了有关扩展实体的文档,但他们使用淘汰赛,而我正在使用 Angular。
我在服务器上定义了一个自定义属性,它正在我的 JSON 中传递。
但是,Breeze js 忽略了它,因为它没有元数据。
我需要在客户端上定义元数据,以便 Breeze 可以读取该属性。
到目前为止,这是我拥有的客户,但它不起作用。不工作......我的意思是当我用 {{item.MyProp}} 调用它时,屏幕上什么也没有出现。但是,实际元数据中的所有其他属性都显示得很好。
configureBreeze();
var serviceName = 'api/Entity';
var manager = new breeze.EntityManager(serviceName);
manager.enableSaveQueuing(true);
var store = manager.metadataStore;
addMyPropType(store);
function addMyPropType(store) {
store.registerEntityTypeCtor("Merchant", MyProp);
}
// custom Merchant constructor
var MyProp= function () {
//'MyProp' is a server-side calculated property of the Merchant class
// This unmapped property will be empty for new entities
// but will be set for existing entities during query materialization
this.MyProp= "test";
};
var dataservice = {
store: store,
List: List,
Create: Create,
ListDetail: ListDetail,
Save: Save
};
return dataservice;
我已经准备好 NODB 示例,但我确实有一个 DB,它也使用 KO。
更新:
好的。所以我发现了一些部分有效的东西。默认值现在显示在视图上。但是,JSON 中的值没有被填充。它始终使用默认值。
这就是我现在所拥有的:
var Merchant = function () {
this.MyProp = "5";
};
store.registerEntityTypeCtor("Merchant", Merchant);
MyProp 需要发生什么才能被 JSON 中的实际值填充?