【问题标题】:Get username for SAPUI5 in WebIDE在 WebIDE 中获取 SAPUI5 的用户名
【发布时间】:2017-08-01 17:34:09
【问题描述】:

这可能只是一些我无法弄清楚的简单 JavaScript 代码,但我正在尝试获取当前登录用户的用户名。或者这是一个我不熟悉的 oData 概念。这是检索它的代码:

onComment: function (oEvent) 
    {
        //gets username
        var userModel = new sap.ui.model.json.JSONModel("/services/userapi/currentUser");
        var username = userModel;
     console.log(username);
    }

我知道应该在var username = userModel 之后进行某些操作,但我无法获得正确的输出。这是我在控制台中得到的内容

构造函数 {pSequentialImportCompleted: Promise, mEventRegistry: Object, mMessages: null, id: "id-1501515372158-22", oData: Object…}

oData:对象

+displayName:"Tyler Genio (Sxxxxxxxx)"

+email:"tyler.i.Genio@company.com"

+firstName:"泰勒"

+lastName:"Genio"

+姓名:“Sxxxxxxxx”

如何从中获取名字和姓氏? 我在网上看到了一些谈论它的文章,但其中一些超出了我的想象。 抱歉对这里的编码格式有任何混淆。

【问题讨论】:

  • 这个应用程序应该在 Launchpad 中使用吗?
  • 我相信是的。我不确定他们把这个放在哪里。我只是在写一个评论部分的应用程序。我只需要将当前用户发送到数据库
  • 嗯,你认为这是发送当前用户的 UI 工作吗?后端无法确定吗?
  • 我很抱歉,但我真的不确定。我有点被这个项目扔了,这是一个学习曲线的地狱(第一次使用 SAP 或 HANA 或 JavaScript)。我知道控制台正在输出正确的信息。我只需要从 userModel 访问 oData 对象
  • 好的,如果你不确定(我建议询问后端开发人员),你可以通过“userModel.getProperty("/firstName")”等方式获取你的属性。

标签: javascript odata sapui5


【解决方案1】:

如果您的模型按照规定的结构,即

{
    "displayName": "Tyler Genio (Sxxxxxxxx)",
    "email": "tyler.i.Genio@company.com",
    "firstName": "Tyler",
    "lastName": "Genio",
    "name": "Sxxxxxxxx"
}

然后 userModel.getProperty("/name");

【讨论】:

  • userModel 在控制台中显示了几个对象。 “oData”是其中包含 5 个其他对象的对象之一。当我尝试“userModel.getProperty("/name")”时,我得到 undefined.
  • 尝试调用 .getProperty("/") 然后你会看到层次结构。
  • 或试试 userModel.oData.name
  • 我只是得到一个空白的 Object{} 而另一个是未定义的
  • 表示在初始化模型后的下一行,数据还没有从后端返回,这意味着你需要等到它们收到。我认为您可以为此使用sapui5.netweaver.ondemand.com/#docs/api/symbols/… 回调。
猜你喜欢
  • 2014-10-23
  • 1970-01-01
  • 2020-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
相关资源
最近更新 更多