2

对于 8.53 中新增的 Domino 数据服务和 XPages 扩展库,我想关闭在 REST API 调用的 JSON 数据中返回的所有属性之前的 @。

例如,目前它看起来像这样:

  "@title":"($DircatConfig)",
  "@folder":false,
  "@private":false,
  "@modified":"2012-02-03T14:50:03Z",
  "@unid":"50458575F2AA5F918525690D004F0AB5",
  "@href":"http:\/\/192.168.1.30:80\/names.nsf\/api\/data\/collections\/unid\/50458575F2AA5F918525690D004F0AB5"

@ 符号在可以直接绑定到数据的 Javascript 框架中让我感到悲痛,因为如果包含 @,则不能使用点符号绑定到单个属性名称。

我正在尝试的框架是http://angularjs.org/并且示例绑定可能是

{{databases.@title}} <-- 不起作用,而 {{databases.title}} <-- 起作用

我已将其标记为 XPages,因为它与扩展库相关。

4

1 回答 1

5

属性名称在 extlib 的 com.ibm.domino.services.rest.RestServiceConstants 类中设置,例如:

...
public static final String ATTR_UNID = "@unid"; //$NON-NLS-1$   
public static final String ATTR_NOTEID = "@noteid"; //$NON-NLS-1$
public static final String ATTR_LINK = "@link"; //$NON-NLS-1$
public static final String ATTR_LINK_REL = "rel"; //$NON-NLS-1$
public static final String ATTR_LINK_HREF = "href"; //$NON-NLS-1$
...

由于它们是公共静态最终字符串,因此您必须扩展 DAS 并使用扩展类。

但是我相信您应该能够以这种方式而不是点表示法访问属性:

database['@title']

希望这可以帮助。

于 2012-02-04T15:36:06.667 回答