我有使用没有主键的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'
},{...
答案 0 :(得分:1)
为了将数据注入商店(即身份图),数据需要具有某种唯一标识符。如果您自己不需要具有主键的项目,那也没关系,但JSData需要它。
从2.9.0开始,将temporary: true
选项传递给inject
将导致为每个被注入的项生成一个id,尽管您当前的解决方法是一个很好的方法。