您好我在输入sap.m时正在处理实时建议。输入的值将用于使用java servlet从mysql db获取数据。结果以xml的形式返回。
以下是视图中sap.m.Input的代码,
var suggestItem = new sap.ui.core.Item(this.createId("item"),{
text:"text()"
})
var inputUser = new sap.m.Input(this.createId("idUser"),{
placeholder: "{i18n>userid}",
type:"Number",
showSuggestion:true,
suggest:[oController.showSuggestion, oController]
}).addStyleClass("inputPadding").bindAggregation("suggestionItems","/plants/plant_name",suggestItem)
这是在建议事件
期间调用的控制器中的函数showSuggestion:function(oEvent){
mthis = this
if(!this.getView().byId("idUser").getModel("sample"))
{
var sModel = new sap.ui.model.xml.XMLModel();
this.getView().byId("idUser").setModel(sModel,"sample")
}
var xml = sampleXml(this.getView().byId("idUser").getValue())
ws_sample(xml,function(msg){
xmldoc = jQuery.parseXML(msg);
console.log(xmldoc)
mthis.getView().byId("idUser").getModel("sample").setData(xmldoc)
})
}
来自服务器的xml文档将如下所示
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sample>
<plants>
<closed>0</closed>
<district_id>0</district_id>
<plant_id>7777</plant_id>
<plant_name>xyz</plant_name>
</plants>
<plants>
<closed>0</closed>
<district_id>0</district_id>
<plant_id>7778</plant_id>
<plant_name>abc</plant_name>
</plants>
<plants>
<closed>0</closed>
<district_id>0</district_id>
<plant_id>7779</plant_id>
<plant_name>ghi</plant_name>
</plants>
</sample>
我正在尝试使用plant_name填充建议项目。
仅供参考我将xml文档设置为sap.m.Inputs模型,而不是xml字符串。
运行此代码时没有错误,但是当我输入时没有任何建议。
非常感谢任何形式的帮助。
TIA。
答案 0 :(得分:0)
您正在错误地指定路径。
text
的 Item
属性应该是模型中属性的路径,该路径相对解析为bindAggregation
方法中指定为“/ plants”的路径。
var suggestItem = new sap.ui.core.Item(this.createId("item"), {
text: "{plant_name}"
})
var inputUser = new sap.m.Input(this.createId("idUser"), {
showSuggestion: true,
suggest: [oController.showSuggestion, oController]
}).addStyleClass("inputPadding").bindAggregation("suggestionItems", "/plants", suggestItem);
Here正在制作演示。