我有一个名为contact
的json模型,它的外观如下:
{firstName:"",lastName:"",country:""}
我有另一个名为country
的模型,其中包含国家/地区列表。我想要dropdown
这个国家/地区列表。从dropdown
中选择国家/地区时,联系人模型中的国家/地区字段应更新。我怎样才能实现这一目标?
答案 0 :(得分:0)
您可以使用named data model和multimodel support
在你的控制器js中,
this.getView().setModel(oCountryModel,"Country");
this.getView().setModel(ocontactModel ,"Contact");
如果要将Contact模型设置为默认值,请在init函数中添加逻辑:
init:function() {
//initialize contact model with default country
var oFilter = new sap.ui.model.Filter("country",
sap.ui.model.FilterOperator.EQ ,"America");
//suppose you have a Contact table called ContactList
var oTable =this.getView().byId("ContactList");
oTable.getBinding("items").filter([oFilter]);
}
在您的视图xml中,使用命名模型数据绑定,例如:
<Text text="{Contact>/firstName}"/>
然后您在控制器中使用两个模型并查看xml。关于下拉选择更改会触发联系人的更新,您需要将事件侦听器附加到下拉列表,并根据所选国家/地区更新联系人数据模型。请参阅以下代码:
handleSelectionChange:function(oEvent) {
//get the new selected country
var country = oEvent.getParameters().newValue;
var oFilter = new sap.ui.model.Filter("country",
sap.ui.model.FilterOperator.EQ ,country);
//suppose you have a Contact table called ContactList
var oTable =this.getView().byId("ContactList");
oTable.getBinding("items").filter([oFilter]);
}
答案 1 :(得分:0)
完成此任务的简单步骤是:
1. Set the Contact Model where ever you want such as View or Core.
2. Set the Country Model to DropDown list.
3. On selection of the DropDown list, on Change function you set Country field by the value you select in Dropdown list.
4. This will update the country value in the Contact Model.