在我的exports_list = [file for file in os.listdir(self.export_folder)
if file.endswith('.csv')]
if not exports_list:
print('Script will now terminate. Check log for more details.\n')
with open(self.log, 'a+') as file:
file.write(f'{dt.datetime.now()}:\n')
file.write('No .csv files found in bmf_exports folder.\n')
file.write('\nFile(s) not found or was not accessible.\n')
raise ValueError('No .csv files found in bmf_exports folder.')
try:
dates = [dateutil.parser.parse(item, fuzzy=True) for item in exports_list]
except ValueError:
print('Parser not able to extract dates from file names.\n')
print('Script will now terminate. Check log for more details.\n')
with open(self.log, 'a+') as file:
file.write(f'{dt.datetime.now()}:\n')
file.write('Parser was not able to extract date(s) from file names.\n')
file.write('Make sure export file names include date in format: ')
file.write('yyyymmdd ')
sys.exit()
文件中,我实例化了OData模型并将其设置为Component.js
:
"donorList"
在视图控制器的var oDonorTable = new ODataModel(sServiceUrl/*, ...*/); // ODataModel required from "sap/ui/model/odata/v2/ODataModel"
this.setModel(oDonorTable, "donorList");
中,我从后端读取值并将其设置为JSONModel:
onInit
在我的XML视图中,我将oData值绑定到XML视图中的ComboBox:
var oDnrDoc = this.getOwnerComponent().getModel();
oDnrDoc.read("/DonorDocs", {
success: function(oData) {
var oDonorDocList = new JSONModel(); // JSONModel required from "sap/ui/model/json/JSONModel"
oDonorDocList.setData(oData);
this.getView().setModel(oDonorDocList, "donorList");
}.bind(this),
// ...
});
我有九个键值对来自后端OData服务,用于实体集“ DonorDocs”。但是,在XML视图中进行渲染时,从下拉列表中进行选择后,尽管组合框下拉列表中填充了9条记录,但我在视图中看不到结果(仅显示空值)。
我可以感觉到一些绑定问题...花括号中的动态变量是否引起问题?有语法问题吗?
答案 0 :(得分:1)
由于您已将模型命名为bot1.send_message(chat_id=chat_id, text="<a href='https://mail.ru/'><i>URL</i></a>", parse_mode="HTML")
,因此必须在绑定中使用该名称。
donorList
答案 1 :(得分:1)
在控制器的
onInit
中,我从后端读取值并将其设置为JSONModel [...]。
我可以感觉到一些有约束力的问题。有语法问题吗?
添加模型名称({donorList>DocCode}
)应该可以解决Dommy的答案中提到的问题,但是应该更加关注一些问题:缺少ODataModel
的现有功能,但要尝试重新使用-使用JSONModel
来实现它们。
具有JSON格式的OData响应可能很想使用JSONModel
处理数据,但是我想强调一下 JSONModel
是一种客户端模型。< / strong>这是一个简单的模型实现,它不知道服务实现建议的任何合同(例如OData或FHIR)。
ODataModel
是一种服务器端模型,专门为处理OData标准(V2或V4)的应用程序而构建。这可能会花费很多工作。例如,在我们的示例中,只需绑定实体集而无需中间JSONModel:
<!-- "donorList" == ODataModel -->
<!-- "DonorDocs" == entity set name -->
<ComboBox items="{donorList>/DonorDocs}">
<c:ListItem key="{donorList>DocCode}" text="{donorList>DocDesc}" />
</ComboBox>
<!-- No oODataModel.read(...) in the controller -->
ODataListBinding
(源自items="{donorList>/DonorDocs}"
)将为您格式化并自动发送请求。
在使用简单的JSONModel构建整个应用程序之前,请继续探索UI5对OData的作用。