在设置了另一个模型后获取并设置默认模型

时间:2017-09-20 13:20:14

标签: sapui5

我的问题是我的manifest.json文件中指定的默认模型为""。

但是,我也在我的控制器中设置了一个视图模型。

{ test: /\.ts$/, include: /ClientApp/, use: ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] },

如何将视图模型恢复为默认模型?

仅仅是

的情况
var oModel = new JSONModel({
            questions: [{
                order: 1,
                title: "",
                criteria: "",
            }]
        });


        this.getView().setModel(oModel);

我问,因为默认模型是包含我所有读/写的服务。

2 个答案:

答案 0 :(得分:1)

您应该在设置默认模型后设置命名模型。因此,您的代码应该像

一样进行更改
var oModel = new JSONModel({
        questions: [{
            order: 1,
            title: "",
            criteria: "",
        }]
    });


    this.getView().setModel(oModel,"newModelName");

现在您可以通过

获取默认模型
this.getView().getModel()

并通过

命名json模型
this.getView().getModel("newModelName");

答案 1 :(得分:0)

解决方案是初始化和访问附加模型的方式,但命名并将其称为“viewmodel”

这样,仍然可以使用

设置默认模型
    oModel = this.getView().getModel();

在控制器中:

    this.getView().setModel(oModel,"viewmodel");
    var oContext = oModel.createBindingContext("/questions/0/");
    this.getView().setBindingContext(oContext,"viewmodel"); 

在视图中:

    title="Question {viewmodel>order}"