Можете ли вы отключить @, который добавляет перед всеми свойствами, возвращаемыми службой данных Domino, в 8.5.3?

Для служб данных Domino, появившихся в версии 8.53, и библиотеки расширений XPages я хочу отключить символ @, который ставит перед всеми свойствами, возвращаемыми в данных JSON из вызова REST API.

например на данный момент это выглядит так:

  "@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, поскольку он связан с библиотекой расширений.


person markbarton    schedule 03.02.2012    source источник


Ответы (1)


Имена атрибутов задаются в классе com.ibm.domino.services.rest.RestServiceConstants библиотеки extlib, например:

...
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']

Надеюсь это поможет.

person Jeremy Hodge    schedule 04.02.2012
comment
Спасибо Джереми - попробую. - person markbarton; 06.02.2012
comment
Не знаю, почему я не подумал о синтаксисе массива, чтобы добраться до значения свойства - отлично работает. - person markbarton; 06.02.2012