在controller.js中找不到名称“ jQuery”错误

问题描述

我正在用VS Code开发UI5应用。 我向*.controller.js文件添加一个新的count函数,并且为了显示来自服务器的计数,我正在使用jQuery,如以下代码所示:

jQuery.each(this._mFilters,function (sFilterKey,oFilter) {
  oModel.read("/portfolios/$count",{
    filters: oFilter,success: function (oData) {
      var sPath = "/" + sFilterKey;
      oviewmodel.setProperty(sPath,oData);
    }
  });
});

不幸的是,我收到以下错误

Screenshot of VSCode error

有人知道为什么会触发错误以及如何解决错误吗?
任何帮助或建议都将不胜感激。

解决方法

我假设this._mFilters是一个对象。在这种情况下,请尝试:

Object.keys(this._mFilters).map(sFilterKey => {
  const oFilter = this._mFilters[sFilterKey];
  oModel.read("/portfolios/$count",{
    filters: [ oFilter ],success: function(sCount) {
      const sPath = `/${sFilterKey}`;
      oViewModel.setProperty(sPath,+sCount);
    },});
});

还有参数filters awaits an array而不是单个Filter实例。


如果仍然首选jQuery,则将 "sap/ui/thirdparty/jquery" (以前为"jquery.sap.global")包括在控制器的依赖项列表中。

sap.ui.define([
  "sap/ui/core/mvc/Controller",// ...,"sap/ui/thirdparty/jquery",],function(Controller,/*...,*/ jQuery) {
  // jQuery is here available
});