2013-09-21 6 views
0

일부 게시물이 있지만 내 프로젝트에서 작동하는 것은 없습니다.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); 

?

+0

낙타는 있습니까? –

+0

낙타 뚜껑이 없습니다. – user2341148

답변

0

글쎄, 이것이 Breeze의 버그 인 것 같습니다. 실제로 작동 시키려면 breeze.js 파일을 편집해야합니다. 나는 그것이 버그라고 생각하지 못했을 것이다.

나는 여기에 답을 발견

Breeze Extended Entity Property Only Loads on Second Query

업데이트 : breeze.js의 최신 버전 및 버그 업데이트

오늘은 더 이상 존재하지 않습니다. 그래서 이것은 아무런 이유없이 기본적으로 많은 고통이었습니다. 도와 주신 모든 분들께 감사드립니다. 어떤 이유로 업데이트 할 수 없다면 위의 링크를 사용하십시오.

0

PWKad가 제안 된대로 낙타 케이스가 아닌 경우 Breeze Angular SPA 템플릿에 대한 breeze 설명서를 확인하십시오 (http://www.breezejs.com/samples/breezeangular-template). 이 링크에는 "클라이언트에서 엔티티 정의 확장"이라는 섹션이 있습니다.

정확하게 이해하면 "MyProp"계산 속성이있는 "상인"개체가 있습니다. 시험해보십시오

store.registerEntityTypeCtor("Merchant",Merchant, merchantInitializer); 

function Merchant(){ 
this.MyProp=""; 
} 
+0

실제로 해당 템플릿을 사용하고 있지만이 문제는 해결되지 않습니다. 나는 그 문서들도 읽었지만 ko.observable을 사용한다. ko.observable은 Knockout에 특화된 것 같다. merchantInitializer는 함수 여야하며, 그 함수에 무엇이 들어 있을지 확신 할 수 없습니다. 내가 게시 한 것과 비슷한 백만 가지 조합을 시도했습니다. 문제는 오류 메시지가 없다는 것입니다 ... 그냥 작동하지 않습니다.누군가 Angular를 사용하여이 작업을 수행하는 샘플을 찾고 있습니다. JSON에 있지만 메타 데이터가 아닌 하나의 속성 만 정의하면됩니다. – user2341148

관련 문제