Model 防止多个视图共享同一模型数据
我的应用程序中有一个页面和一个关联的控制器。例如Model 防止多个视图共享同一模型数据,model,sapui5,Model,Sapui5,我的应用程序中有一个页面和一个关联的控制器。例如A.view.xml和A.controller.js 另一个程序员需要创建一个类似的页面。所以他复制了我页面的视图和控制器(并将文件名改为B)。他创建的这个新页面正在从应用程序中的另一个位置调用 问题是: 当我打开A页时,用一些数据填充它,取消/保存它,然后转到B页并打开它,该页打开时使用的数据与我在A页中填充的数据相同 我相信这与两个页面具有相同的设计、相同的ID,甚至相同的模型名有关。如何防止数据从A页流向B页?我无法退出B页。为什么您不使用不
A.view.xml
和A.controller.js
另一个程序员需要创建一个类似的页面。所以他复制了我页面的视图和控制器(并将文件名改为B)。他创建的这个新页面正在从应用程序中的另一个位置调用
问题是:
当我打开A页时,用一些数据填充它,取消/保存它,然后转到B页并打开它,该页打开时使用的数据与我在A页中填充的数据相同
我相信这与两个页面具有相同的设计、相同的ID,甚至相同的模型名有关。如何防止数据从A页流向B页?我无法退出B页。为什么您不使用不同的型号 A.view.xml
<Page id="pageA">
B.controller.js
init: function(){
var oModelA = new sap.ui.model.json.JSONModel();
this.getView().byId("pageA").setModel(oModelA, "ModelA");
}
init: function(){
var oModelB = new sap.ui.model.json.JSONModel();
this.getView().byId("pageB").setModel(oModelB, "ModelB");
}
为什么不使用不同的型号 A.view.xml
<Page id="pageA">
B.controller.js
init: function(){
var oModelA = new sap.ui.model.json.JSONModel();
this.getView().byId("pageA").setModel(oModelA, "ModelA");
}
init: function(){
var oModelB = new sap.ui.model.json.JSONModel();
this.getView().byId("pageB").setModel(oModelB, "ModelB");
}
您能否同时共享视图和控制器代码?这两个视图之间需要共享模型。一种“简单”的方法是在一个公共父视图中声明模型(视图继承自父视图的模型)@JiaSH我想他想要的是相反的结果,因为现在他有一个共享的模型,但希望这两个视图是独立的。也许我误解了这个问题:你能展示一下你在哪里/如何创建你的模型以及你在哪里设置它吗?在什么控件上调用您的
setModel
?模型是由每个视图的控制器创建的还是在外部某个位置创建的?您能否共享视图和控制器代码?您需要在两个视图之间共享模型。一种“简单”的方法是在一个公共父视图中声明模型(视图继承自父视图的模型)@JiaSH我想他想要的是相反的结果,因为现在他有一个共享的模型,但希望这两个视图是独立的。也许我误解了这个问题:你能展示一下你在哪里/如何创建你的模型以及你在哪里设置它吗?在什么控件上调用您的setModel
?模型是由每个视图的控制器创建的还是由外部的某个地方创建的?