2016-06-03 13 views
0

Heute stand ich ein seltsames Problem für Daten (könnte ein dummer sein) verbindlich, während auf den 2. Blick Navigation, die kommen aus OData Modell und Panel am unterenDatenbindungsproblem während Navigation und Routing?

Liste der Daten zeigt, habe ich den Code in das link replizieren - http://plnkr.co/edit/ClZqvo?p=info (Sie können dies auch durch RUN auf der Oberseite ausführen) - Bitte führen Sie es in Chrom mit deaktivierter Sicherheit (aufgrund CORS Problem)

Jetzt ist das Problem, wenn ich zur zweiten Ansicht (OData-Tabelle) navigiere und Wählen Sie ein beliebiges Listenelement aus. Sie werden unten sehen, dass das Panel das ausgewählte Element widerspiegelt (da ich die BindElement-Methode verwendet habe, um den Pfad zu binden). Danach klickte ich zurück und dann erschien wieder meine erste Ansicht (JSON-Tabelle). Ich klickte auf Weiter und dann wurde die zweite Ansicht angezeigt. Wenn ich den gleichen Gegenstand wähle, den ich vorher ausgewählt habe, zeigt dieses Panel nicht die ausgewählten Gegenstände an. Dieses Problem tritt nur auf, wenn ich vor und zurück navigiere und denselben Artikel auswähle. Nicht in der Lage zu verstehen, was das verursacht hat?

Aber wenn ich irgendein anderes Element wähle, wird es mir den ausgewählten Gegenstand zeigen.

Wer hat eine Idee dazu?

~ Rahul

Antwort

0

Dies ist häufiges Problem, wenn bindElement mit, ich habe es auch konfrontiert. Möglicherweise konnte der Kontext der referenzierten Entität nicht aufgelöst werden. Felder werden also nicht mit entsprechenden Werten verknüpft.

Als Alternative können Sie setBindingContext verwenden, um Felder innerhalb des Bereichs zu binden.

Da Sie das benannte Modell verwenden, sollte es als Argument für setBindingContext angegeben werden.

So wird Ihr Code wie

sein
onSelect: function(oEvent) { 
    var oContext = oEvent.getSource().getBindingContext("odataModel"); 
    var oProductDetailPanel = this.getView().byId("prodDetailsPanel"); 
    oProductDetailPanel.setBindingContext(oContext, "odataModel"); 
}