@andrew1 wrote:
I've got 2 models -- tasks and actions -- in a
belongsTo
<-->hasMany
./app/model/action.coffee ... task: DS.belongsTo('task') ... /app/model/task.coffee ... actions: DS.hasMany('actions') ...
In the route, I'm trying to use
peekAll
andfilter
to determine if I've already grabbed a list of actions for a specific task from the back-end. If I have, I used the cached data; if not, I hit the back-end:/app/actions/route.coffee model: -> task = @modelFor(@get('routeName').split('.')[0..-2].join('.')).task query = {root: 'actions', task_id: task.id} actions = @store.peekAll('action').filter (action) -> action.get('task.id') == task.id if actions.get('length') @setNetworkEntities(actions) @store.query('action', query) return { actions: actions columns: @get('columns') } else @store.query('action', query).then (actions) => @setNetworkEntities(actions) return Ember.RSVP.hash actions: actions columns: @get('columns')
The problem is in the
filter
step:actions = @store.peekAll('action').filter (action) -> action.get('task.id') == task.id
when I
get('task.id')
Ember Data is making a network call and hitting the back-end. Is there a way to get thetask.id
? It must be stored on the action but I can't find a way to access it without hitting the wire.Thanks!
Posts: 1
Participants: 1