在Sapui5中的一个控制器上加载两个json模型

时间:2015-05-05 14:46:55

标签: json controller sapui5

我有两个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)

2 个答案:

答案 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