Comments (3)
But how should an existing item in the DataStore be updated via the synchronous API?
Use DS#inject
. If the item is already in the store than what you're injecting will be merged with the existing item. It's the perfect way to update what's in the data store.
Here's an example of how I do this in one of my apps:
angular.module('app').service('Msg', function ($rootScope, DS) {
'use strict';
var socket = io.connect(app.url, { path: '/api/socket.io' });
socket.on('create', function (data) {
if (data.ownerId && $rootScope.loggedInUser && $rootScope.loggedInUser.id === data.ownerId) {
DS.find(data.resource, data.id);
}
$rootScope.$broadcast('create', data.resource, data.id, data.ownerId);
});
// I don't send the actual item up the socket, just the id and resource name
socket.on('update', function (data) {
// Get the latest copy of the item if it's in the store
DS.refresh(data.resource, data.id);
$rootScope.$broadcast('update', data.resource, data.id, data.ownerId);
});
// This relates to your example (full payload sent up the socket)
socket.on('update_full', function (data) {
// Inject the data, updating any existing items
DS.inject(data.resource, data.payload);
$rootScope.$broadcast('update_full', data.resource, data.payload);
});
socket.on('destroy', function (data) {
DS.eject(data.resource, data.id);
$rootScope.$broadcast('destroy', data.resource, data.id, data.ownerId);
});
return {};
});
Edit: The above gives my app a bit of "3-way data-binding".
Closing because Iām not sure this is an issue, if you are convinced that this is really a bug, please feel free to re-open the issue and add more information:
- good - Your versions of Angular, JSData, etc, relevant console logs/error, code examples that revealed the issue
- better - A plnkr, fiddle, or bin that demonstrates the issue
- best - A Pull Request that fixes the issue, including test coverage for the issue and the fix
Otherwise support is done via the mailing list.
from js-data.
Super easy as I expected :) Thanks :)
from js-data.
:)
from js-data.
Related Issues (20)
- 4.0.0 Release
- Record & Schema Classes
- Refactor code to use ecmascript Classes
- Publish all packages under @js-data team/scope
- Lerna mono repo? HOT 3
- Improve relations logic HOT 5
- jsdoc - api docs
- make orderBy work with locality by using Intl.collator
- Maximum call stack size exceeded when related models have different idAttribute
- datastore.get(mapper, '') returns a record (v3)
- Defining relations results to error when the Mapper recordClass is set to false (POJO) HOT 2
- Node6 incompatibilities with `querystrings` HOT 6
- hasOne relations aren't found in store for newly added records
- Hooks not working on mappers
- šØ Potential Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') (CWE-1321) HOT 3
- šØ Potential Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') (CWE-1321) HOT 7
- Trying to get in touch regarding a security issue
- SimpleStore doesn't support eager loading
- Getting 'DSUtils.deepMixIn' undefined when upgrading js-data package. HOT 1
- Lack of redirect from js-data.io to www.js-data.io HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from js-data.