我有两个json数据。当我尝试这个代码时,chrome控制台只显示最后加载的json模型。怎么能在一个控制器中加载两个json?这是我试过的代码。
var view = this.getView();
var model2 = new sap.ui.model.json.JSONModel();
model2.loadData("model/x.json");
var model3 = new sap.ui.model.json.JSONModel();
model3.loadData("model/y.json");
view.setModel(model3);
view.setModel(model2)
而且这个。
var view = this.getView();
var model2 = new sap.ui.model.json.JSONModel();
model2.loadData("model/x.json");
model2.loadData("model/y.json");
view.setModel(model2)
答案 0 :(得分:2)
方法setModel
有两个参数。第一个是您要设置的实际模型,第二个是模型存储的名称。通常,您可以使用setModel(oModel)
,然后存储名称为undefined
的模型。这就是你所做的,你将一个模型设置为未定义的名称,并用第二个模型覆盖它。要存储两者,您必须至少为其中一个模型指定名称。
所以,如果你打电话
view.setModel(model1, "bar");
view.setModel(model2, "foo");
你可以用
来获取它们var barmodel = view.getModel("bar");
var foomodel = view.getModel("foo");
不要忘记通过将模型名称添加为前缀来调整绑定,例如BAR>
答案 1 :(得分:0)
方法 loadData 有一个参数 bMerge ,表示服务器的响应应合并到现有数据中,而不是覆盖数据。请查看API。