[js-data] 不支持无主键吗?
Does [js-data] support no primary key?
我有希望使用没有主键的 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'
},{...
为了将数据注入存储(这是一个身份映射),数据需要具有某种唯一标识符。如果你自己不需要项目有主键也没关系,但是对于JSData来说是必须的。
从 2.9.0 开始,将 temporary: true
选项传递给 inject
将导致为每个被注入的项目生成一个 id,尽管您当前的解决方法是一个很好的方法。
我有希望使用没有主键的 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'
},{...
为了将数据注入存储(这是一个身份映射),数据需要具有某种唯一标识符。如果你自己不需要项目有主键也没关系,但是对于JSData来说是必须的。
从 2.9.0 开始,将 temporary: true
选项传递给 inject
将导致为每个被注入的项目生成一个 id,尽管您当前的解决方法是一个很好的方法。