Sapui5 为什么我的主控制器被调用了两次?

Sapui5 为什么我的主控制器被调用了两次?,sapui5,Sapui5,所有其他路由都可以,但由于某种原因,主控制器被调用了两次。为什么会发生这种情况 onInit:function(){ var oRouter=this.getOwnerComponent().getRouter(); oRouter.getRoute(“主”)。附件(此为路径匹配,此为); this.getView().setModel(新的JSONModel({ 职位:[] })“工作”); }, 这取决于路由配置吗 “根视图”:{ “视图名称”:“CompleteSurvey.view.M

所有其他路由都可以,但由于某种原因,主控制器被调用了两次。为什么会发生这种情况

onInit:function(){
var oRouter=this.getOwnerComponent().getRouter();
oRouter.getRoute(“主”)。附件(此为路径匹配,此为);
this.getView().setModel(新的JSONModel({
职位:[]
})“工作”);
},
这取决于路由配置吗

“根视图”:{
“视图名称”:“CompleteSurvey.view.Main”,
“类型”:“XML”
},
“路由”:{
“路线”:[{
“名称”:“主要”,
“图案”:“图案”,
“目标”:[“主要”]
}],
“配置”:{
“路由类”:“sap.m.routing.Router”,
“视图类型”:“XML”,
“视图路径”:“CompleteSurvey.view”,
“controlId”:“应用程序”,
“控制聚合”:“页面”
},
“目标”:{
“主要”:{
“视图名称”:“主视图”
}
}
}

主控制器创建两次的原因是它的视图创建了两次

  • 组件获取manifest.json并查看
    rootView
    ,以创建分配的视图(
    “CompleteSurvey.view.Main”
  • 路由器初始化后,会看到当前哈希/模式是
    ,并再次创建相应的视图,即
    “Main”
    视图
  • 当前的最佳实践是使用单独的根视图。您可以为
    模式保留
    Main
    ,但避免再次使用与根视图相同的视图



    有关更多参考资料,请参阅本教程。

    谢谢您的精确回答。他帮了我很多忙。