sapui5 - 选择控件不显示模型中的任何选项
问题描述
我正在尝试使用选择/下拉选项来选择可用的相机。我尝试了在不同解决方案中找到的多种方法。我们公司正在使用JS 视图,这使得找到合适的解决方案变得更加困难。因此,我希望这可以帮助我。
获取可用相机的代码,使用键和文本创建一个仅包含相机的新对象数组,以准备选择:
{
// ...
getCameras: function() {
var camList = [];
navigator.mediaDevices.enumerateDevices().then(function(inputs) {
inputs.forEach(function(input) {
if (input.kind === "videoinput") {
var camera = {
key: input.deviceId,
text: input.label
}
camList.push(camera);
}
});
});
return camList;
},
}
当我打开相机选项时,我运行此功能:
{
// ...
setCameraSelect: function() {
var oController = sap.ui.getCore().byId('Row').getController();
var cameraModel = new sap.ui.model.json.JSONModel();
cameraModel.setData({ cameras: oController.getCameras() });
sap.ui.getCore().setModel(cameraModel, 'cameramodel');
cameraModel.refresh();
},
}
到目前为止,模型已作为 cameramodel 加载到 Core 中。我也可以使用以下方法返回:
var model = sap.ui.getCore().getModel("cameramodel");
console.log(model.oData);
结果:cameras: (2) [{…}, {…}]
在我看来(JS),我得到了以下元素:
var cameraSelect = new sap.m.Select("CameraSelect", {
items: {
path: "cameramodel>/cameras",
template: new sap.ui.core.ListItem({
key: "{cameramodel>key}",
text: "{cameramodel>text}"
})
},
});
我尝试了这个的不同版本,有和没有型号名称。还尝试将模型添加到元素 ( sap.m.Select
) 本身并使用它,无论是否命名它。但是无论我尝试选择什么,菜单都没有提供任何选项。我管得这么差怎么办?
解决方案
看法:
<Select id="selectCamera" forceSelection="false" items="{cameraModel>/}">
<items>
<core:Item key="{cameraModel>deviceId}" text="{cameraModel>label}"/>
</items>
</Select>
控制器:
navigator.mediaDevices.enumerateDevices().then(function(aInputs) {
var oCameraModel = new sap.ui.model.json.JSONModel();
var aItems = [];
var oSelectCamera = this.getView().byId("selectCamera");
aInputs.forEach(function(oInput) {
if (oInput.kind === "videoinput") {
aItems.push(oInput);
}
});
oCameraModel.setProperty("/", aItems);
oSelectCamera.setModel(oCameraModel, "cameraModel"); //Bind model to select
}.bind(this));
推荐阅读
- input - anychart line - xScale 限制输入数据 + 偏移量
- android - deeplink 在使用导航组件时发送不完整的序列化参数
- swift - Swift:闭包如何捕获值类型的变量?
- sql - 将行值转换为列值
- php - OOP 中的准备好的语句
- android - NavController.getBackStackEntry() 按预期工作
- wordpress - 如何以编程方式创建 WooCommerce 预订?
- python - 在 django 上使用 xlsxwriter 创建的 excel 文件上删除 .xls 扩展名
- assembly - 解决汇编中两个数相加的练习
- python - 处理熊猫中的重复值