Javascript 避免查看错误的请求

Javascript 避免查看错误的请求,javascript,sapui5,Javascript,Sapui5,我有一个包含如下列表的xml文件 view.xml <List id="myList" items="{ path: '/myEntitySet' }"> <items> <StandardListItem title="{myTitle}" /> </items> </List> 问题: “查看请求”在“控制器请求”前几秒钟触发,请求失败

我有一个包含如下列表的xml文件

view.xml

<List
    id="myList"
    items="{
        path: '/myEntitySet'
    }">
    <items>
        <StandardListItem
            title="{myTitle}" />
    </items>
</List>
问题: “查看请求”在“控制器请求”前几秒钟触发,请求失败(404错误)。
我不想通过JS呈现列表来避免来自视图的请求。有没有办法阻止查看请求?

有几种方法可以做到这一点

最简单的方法是直接在XML中进行过滤,但我假设您的动态过滤参数不能在设计时写入,因此此选项不可用

您只能在控制器中进行绑定。因为您说过不想用JavaScript“呈现”列表,所以可以使用以下代码段

视图:


控制器:

this.byId("myList").bindItems("/myEntitySet", {
   template: this.byId("myItem"),
   //optional:
   templateShareable: true
});
//in onInit
this.getModel().getDeferredGroups(["myGroup"]);

//after you added the filter
this.getModel().submitChanges();
另一种可能性是使用OData模型(v2)的延迟批处理组功能。基本上,您可以通过给批处理请求一个
groupId
将请求分组到一个批处理请求中

如果将此类组标记为延迟,则在调用OData模型的
submitChanges
方法时提交该组(及其包含的请求)。查看和的文档

视图:


控制器:

this.byId("myList").bindItems("/myEntitySet", {
   template: this.byId("myItem"),
   //optional:
   templateShareable: true
});
//in onInit
this.getModel().getDeferredGroups(["myGroup"]);

//after you added the filter
this.getModel().submitChanges();

有几种方法可以做到这一点

最简单的方法是直接在XML中进行过滤,但我假设您的动态过滤参数不能在设计时写入,因此此选项不可用

您只能在控制器中进行绑定。因为您说过不想用JavaScript“呈现”列表,所以可以使用以下代码段

视图:


控制器:

this.byId("myList").bindItems("/myEntitySet", {
   template: this.byId("myItem"),
   //optional:
   templateShareable: true
});
//in onInit
this.getModel().getDeferredGroups(["myGroup"]);

//after you added the filter
this.getModel().submitChanges();
另一种可能性是使用OData模型(v2)的延迟批处理组功能。基本上,您可以通过给批处理请求一个
groupId
将请求分组到一个批处理请求中

如果将此类组标记为延迟,则在调用OData模型的
submitChanges
方法时提交该组(及其包含的请求)。查看和的文档

视图:


控制器:

this.byId("myList").bindItems("/myEntitySet", {
   template: this.byId("myItem"),
   //optional:
   templateShareable: true
});
//in onInit
this.getModel().getDeferredGroups(["myGroup"]);

//after you added the filter
this.getModel().submitChanges();

“错误:元素的聚合项缺少模板或工厂函数…”对于“依赖项”-解决方案
,错误不是来自视图(假设您在视图中写的就是这些),而是来自绑定列表的位置。确保您正在相应地传递
模板(错误表明您没有在那里传递模板)。在“onAfterRendering”中,我调用
oList.bindItems(“/myEntitySet”),{template:self.byId(“MasterListItem”),过滤器:[new sap.ui.model.Filter]({and:true,filters:aFilter},false)],//可选:templateShareable:true});
我使用
self.byId(“MasterListItem”)获取模板
顺便说一句:中没有类似dependents的聚合。您是否有任何进一步的信息?dependents是继承自的聚合。如果找不到dependents,您将收到一条错误消息,内容大致如下
Control sap.m.dependents not found.
。我想您应该检查一下
self.byId(“MasterListItem”)
返回某些内容。
self.byId(“MasterListItem”)
返回
元素sap.m.CustomListItem\uu xmlview1--MasterListItem
“错误:缺少元素的聚合项的模板或工厂函数…”对于“依赖项”-解决方案
错误不是来自视图(假设这就是您在那里编写的全部内容),但是从绑定列表的位置开始。确保您正在相应地传递
模板
(错误表明您没有在那里传递模板)。在“onAfterRendering”中,我调用
oList.bindItems(“/myEntitySet”,{template:self.byId(“MasterListItem”),filters:[new sap.ui.model.Filter({and:true,filters:aFilter},false)],//可选:templateShareable:true});
我使用
self.byId(“MasterListItem”)获取模板
顺便说一句:在中没有类似dependents的聚合。您有关于此的进一步信息吗?dependents是继承自的聚合。如果找不到dependents,您将收到一条错误消息,内容大致如下
Control sap.m.dependents not found.
。我想您应该检查
self.byId(“MasterListItem)
返回某个内容。
self.byId(“MasterListItem”)
返回
Element sap.m.CustomListItem\uu xmlview1——MasterListItem