I created a UI5 master-detail page:
Master
<List items="{som>/Users}">
<StandardListItem
type="Navigation"
press="onItemPress"
title="{som>UserName}"
/>
</List>
onItemPress: function(oEvent) {
var oUserContext = oEvent.getSource().getBindingContext("som");
var oUser = oUserContext.getObject();
this.getRouter().navTo("userDetails", {userId: oUser.Id});
}
Detail
onInit: function () {
var route = this.getRouter().getRoute("userDetails");
route.attachPatternMatched(this._onObjectMatched, this);
},
_onObjectMatched: function (oEvent) {
var sUserId = oEvent.getParameter("arguments").userId;
this.getView().bindElement({
path: "som>/Users('"+sUserId+"')",
model: "som"
});
},
reload: function() {
this.getView().getModel("som").refresh();
},
<fLayout:SimpleForm id="userForm">
<Button text="reload" press="reload"/>
<Label text="{i18n>settings.user.id}"/>
<Input editable="false" value="{som>Id}"/>
<Label text="{i18n>settings.user.username}"/>
<Input value="{som>UserName}"/>
<Label text="{i18n>settings.user.email}"/>
<Input value="{som>Email}"/>
<Label text="{i18n>settings.user.firstname}"/>
<Input value="{som>FirstName}"/>
<Label text="{i18n>settings.user.lastname}"/>
<Input value="{som>LastName}"/>
</fLayout:SimpleForm>
Everything is working fine. But when I change a user in the detail view, it is being updated but not in the master view! With the reload method, I can manually refresh it. But how can I fire this automatically after a change? Can I bind a change event on the SimpleForm?