Ember resolving async belongsTo to null

Tim

Using the following component in ember-cli (component name if-current-user) the promise for a belongsTo on model.user resolves to null until I save an unrelated model into the store. How do I get it to resolve to the User object associated with the record?

export default Ember.Component.extend({
  userId: Ember.computed.alias('user.id'),
  currentUserId: Ember.computed.alias('session.user.id'),

  isCurrentUser: function() {
    return !!(this.get('userId') && this.get('currentUserId') && this.get('userId') === this.get('currentUserId'));
  }.property('userId', 'currentUserId')
});

Model:

import DS from 'ember-data';

export default DS.Model.extend({
  user: DS.belongsTo('user', { async: true }),
  timestamp: DS.attr('number')
});

Template:

{{#if-current-user user=model.user}}
  {{#link-to "route.edit" model}}Edit{{/link-to}}
{{/if-current-user}}

Note that I'm injecting the current session into all components, routes and controllers.

Tim

Turns out this was related to the data store on the backend. If you don't fulfil the requirements for hasMany / belongTo and do not insert the related instance into both objects, then this condition will represent itself.

In short, I was only storing the current user in the belongsTo, and the inverse hasMany - when loading the user - couldn't find the relationship and seems to remove it from the Ember Data store. Annoying, but at least it is consistent.

import Ember from 'ember';

export default Ember.Controller.extend({
  actions: {
    save: function() {
      var user = this.get('session.user');
      var newInstance = this.store.createRecord('model', {
        user: user,
        timestamp: new Date().getTime()
      });
      newInstance.save().then(function() {
        user.get('models').pushObject(newInstance);
        user.save();
      });
    }
  }
});

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Ember data - set belongsTo to null

From Dev

Ember Data embedded belongsTo relationship returning null

From Dev

Ember Data belongsTo async relationship omitted from createRecord() save() serialization

From Dev

Ember Data belongsTo async relationship omitted from createRecord() save() serialization

From Dev

How to use belongsTo in Ember

From Dev

Ember BelongsTo Assertion Failed

From Dev

Ember not persisting belongsTo data

From Dev

ember data only with a belongsto relationship

From Dev

ember-data belongsTo not working

From Dev

belongsTo relationship returns null

From Dev

Angular async not resolving timeouts

From Dev

Ember fewer requests for hasMany and belongsTo lookups

From Dev

Nullable belongsTo relationship in ember-data?

From Dev

Ember and Sails Create/Save Relationship (BelongsTo/HasMany)

From Dev

Ember Data 1.0.0 belongsTo Relationship in JSON

From Dev

Ember Data belongsTo Association (JSON format?)

From Dev

Ember Data. Save model with "belongsTo" relationship

From Dev

Ember belongsTo relation disappearing with localstorage adapter

From Dev

Ember.js binding to and saving belongsTo property

From Dev

How to use belongsTo in ember-model?

From Dev

Ember Data 1.0.0 belongsTo Relationship in JSON

From Dev

Ember belongsTo relationship passing as nil to server on saving

From Dev

Resolving overload ambiguity with null

From Dev

mongodb belongsTo Foreign key is null

From Dev

ember / ember-data belongsTo and hasMany not updating as expected

From Dev

Promise in Ember route model not resolving/updating

From Dev

Unity resolving unmapped types with null

From Dev

Async call in ember testing

From Dev

Laravel belongsTo returning null when using 'with'

Related Related

HotTag

Archive