일부 게시물이 있지만 내 프로젝트에서 작동하는 것은 없습니다.KO가없는 매핑되지 않은 엔터티 속성에 Breeze MetaData를 확장하는 방법
Breeze에서 엔티티 확장에 관한 문서를 읽었지만 녹아웃을 사용하고 있으며 각도를 사용하고 있습니다.
서버에 사용자 지정 속성을 정의했으며 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 샘플을 준비했지만 데이터베이스가 있고 KO도 사용합니다.
UPDATE :
좋아. 그래서 부분적으로 작동하는 것을 발견했습니다. 이제 기본값이보기에 표시됩니다. 그러나 JSON의 값은 채워지지 않고 항상 기본값을 사용합니다.
이 내가 지금 무엇을 가지고 :
MyProp는 JSON의 실제 값으로 채워 져야하는 일이 필요로하는 것은var Merchant = function() {
this.MyProp = "5";
};
store.registerEntityTypeCtor("Merchant", Merchant);
?
낙타는 있습니까? –
낙타 뚜껑이 없습니다. – user2341148