[js-data]是否支持主键?

时间:2016-03-30 23:48:25

标签: primary-key jsdata js-data-angular

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

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

我可以获取js数据来生成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'
          },{...

1 个答案:

答案 0 :(得分:1)

为了将数据注入商店(即身份图),数据需要具有某种唯一标识符。如果您自己不需要具有主键的项目,那也没关系,但JSData需要它。

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