0

我有我希望使用没有主键的 js-data ( http://www.js-data.io/docs/dsdefaults#idattribute ) 管理的日志数据。

我需要生成密钥还是可以将 js-data 配置为允许在没有 pk 的情况下访问数据?

我可以获取 js-data 来生成 pk 吗?我不需要持久化这些数据,只是想使用 js-data 功能来查询它。

例子:

  $provide.factory('syslog', ['DS', function(DS) {
    return DS.defineResource({
      name: 'log'
    });
  }]);

  $provide.factory('LoggingServices', ['$q', '$filter', '$log', 'syslog', function($q, $filter, $log, syslog) {

    function injectMockLogs () {
      syslog.inject({
        'messages': [
          {
            'time':'2016-03-29 09:32:43',
            'severity':'INFO',
            'user':'carolyn',
            'auth_type':'RADIUS',
            'method':'UI',
            'event_id':1107,
            'message':'In make_radius_request: Making radius request for user carolyn',
            'full_message':'2016-03-29 09:32:44 "info" ns [1107]: RADIUS auth:In continue_radius_auth: Starting RADIUS authentication for user carolyn @ 10.217.22.20'
          },{
            'time':'2016-03-29 09:32:44',
            'severity':'INFO',
            'user':'carolyn',
            'auth_type':'RADIUS',
            'method':'UI',
            'event_id':1107,
            'message':'In make_radius_request: Making radius request for user carolyn',
            'full_message':'2016-03-29 09:32:44 "info" ns [1107]: RADIUS auth:In make_radius_request: Making radius request for user carolyn'
          },{...
4

1 回答 1

2

为了将数据注入存储(这是一个身份映射),数据需要具有某种唯一标识符。如果您自己不需要项目具有主键也没关系,但对于 JSData 是必需的。

从 2.9.0 开始,将temporary: true选项传递给inject将导致为每个被注入的项目生成一个 id,尽管您当前的解决方法是一个很好的方法。

于 2016-04-02T01:53:34.110 回答