2016-05-09 11 views
0

Ich lese einige OData auf der Route abgestimmt.OData Model nicht erfrischend

Dies funktioniert gut zum ersten Mal oder wenn es aktualisiert wird, aber wenn ich es aus einer anderen Ansicht route, werden die Daten nicht aktualisiert, bis ich die Seite erneut aktualisiere.

_onRouteMatched: function (oEvent) { 
    //initialise display 
    var view = this.getView(); 
    view.setBusy(true); 
    var oModel = this.getModel("outstanding"); 

    this.getModel().read("/CalendarSet", { 
     filters: [ 
      new Filter("CategoryId", FilterOperator.EQ, "S"), 
      new Filter("ApprovalId", FilterOperator.EQ, "0"), 
      new Filter("EndDate", FilterOperator.EQ, "9999.12.31"), 
      new Filter("DayOfWeek", FilterOperator.EQ, "0"), 
      new Filter("SequenceNumber", FilterOperator.EQ, "00"), 
     ], 
     success: function (oData) { 
      console.log(oData); 
     } 
    }); 
} 

Antwort

0

Da Ihre Ansicht oder Steuerung nicht an das Modell gebunden ist, wird die Benutzeroberfläche nicht automatisch aktualisiert. Binden Sie das Modell in der Ansicht oder steuern und aktualisieren Sie das Modell beim Routing, um aktualisierte Daten zu erhalten. Dadurch werden die Bindungen der entsprechenden Steuerelemente aktualisiert.

_onRouteMatched: function(){ 
    oModel.refresh(); 
} 
+0

Danke. Ich habe die volle Funktion nicht eingeschlossen, also ist es gebunden. Wenn man sich das genauer anschaut, werden die oData nach dem Lesen nicht rezeriert. Sobald ich die Aktualisierung jedoch mache, ist die oData in Ordnung. –

0

Da Ihre Ansicht oder Steuerung nicht an das Modell gebunden ist, wird die Benutzeroberfläche nicht automatisch aktualisiert. Modell an Ansicht binden oder das Modell steuern und aktualisieren

oModel.refresh (true);