无法在attachRequestCompleted中调用自己的方法

时间:2018-06-13 15:17:24

标签: javascript sapui5

onInit中,我想调用一个API并使用我从此调用中获得的数据设置我制作的模型。

onInit: function() {
  // ...
  callCRM();
},

callCRM: function() {
  var model = new sap.ui.model.json.JSONModel()
  model.loadData("api/url", null, true, "GET")
  model.attachRequestCompleted(() => {
    var data = model.getData()
    this.setProperty('/path/key', data.key)
  })
},

setProperty是我不必每次都写this.getModel().setProperty(path, value)的函数。 在这种形式下,代码不起作用,这意味着我无法看到表单中的值被自动完成。如果我使用带有硬编码字符串的注释,我可以看到输入被填充。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

存在语法错误。正确的用法应该是:

model.attachRequestCompleted(function() {
  var data = model.getData();
  this.setProperty('/path/key', data.key);
}.bind(this));

查看API reference。在使用function分配事件处理程序时,请记住bind上下文。否则,处理程序无法找到setProperty方法。

相关问题