2

8.53 で新しく追加された Domino Data Services と 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$
...

これらは public static final String であるため、DAS を拡張して拡張クラスを使用する必要があります。

ただし、ドット表記ではなく、次の方法で属性にアクセスできるはずです。

database['@title']

お役に立てれば。

于 2012-02-04T15:36:06.667 に答える