Praca z bryzą wspieraną przez SharePoint, zgodnie z opisem here i używanie TypeScript zamiast JS.Dlaczego elementAspect z moich elementów zapytania miałby wartość NULL?
W klasie DataService utworzyć EntityManager i wykonać zapytanie:
private servicePath: string = '/api/PATH/';
private manager: breeze.EntityManager;
constructor() {
this.init();
}
private init(): void {
this.manager = new breeze.EntityManager(this.servicePath);
}
public ListResponses(): breeze.Promise {
var query = breeze.EntityQuery.from("Responses");
return this.manager.executeQuery(query);
}
Następnie nazwać to z moim modelu widoku, który działa prawidłowo:
private loadResponses(): void {
this.dataservice.ListResponses().then((data) => {
this.handleResponsesLoaded(data);
}).fail((error) => {
this.handleDataError(error);
});
}
private handleResponsesLoaded(data:any): void {
for (var i = 0; i < results.length; i++){
this.extendItem(results[i]);
}
this.renderList(results, "#tp-responses-list");
}
ale moje próby rozszerzenia każdego pozycja kończy się niepowodzeniem, ponieważ pozycja elementu entityAspect
jest pusta:
private extendItem(item: any): void {
item.entityAspect.propertyChanged.subscribe(() => { // FAILS HERE
setTimeout(() => {
if (item.entityAspect.entityState.isModified()) {
this.dataservice.SaveChanges().then((result) => {
tracer.Trace("SaveChanged Result: " + result);
}).fail((error) => {
this.handleDataError(error);
});
}
}, 0);
});
}
Po nspecting element wynik, widzę to po prostu zwykły obiekt danych, ze wszystkimi właściwościami spodziewałbym ale nie Podmiot dobroć:
Właśnie rozpoczął wietrze, więc najlepszym sposobem, aby umieścić pytanie brzmi: co ja tu zrobiłem źle?
Jay - Dziękuję za szybką odpowiedź. Używam metadanych wyodrębnionych z edmx referencji do usługi, ale musi w tym być coś złego - spróbuję to naprawić (mam wiele typów encji i nie chcę ręcznie stosować metadanych w klienta, jeśli mogę pomóc). W związku z tym krótka kontynuacja: w jaki sposób typ breeze pasuje do metadanych? Czy jest to oparte na nazwie typu lub na mapie właściwości, takich jak interfejs lub ...? – JcFx
można uzyskać listę typów, które zawiera metadataStore za pomocą metody getEntityTypes. Każdy typ jednostki ma "nazwę" i właściwość "shortName", które można dopasować. –
Spoglądam na to rano. Dzięki jeszcze raz. – JcFx