dimanche 26 mars 2017

Ember 2, Show a single loading message when the ids where included in the original response

I use very often in my code:



  <div>post.title</div>



  <div>I'm loading the posts...</div>



But sometimes I don't know if the model.posts is empty or not.

How to show a message instead of loading forever an empty array?

The problem here is that I'm in /category/2 page, so in category.hbs template and posts are "sideloaded" in response, like this:

{
  "data": {
    "id": "1",
    "type": "categories",
    "attributes": {
      "name": "Books"
    },
    "relationships": {
      "posts": {
        "data": [{
          "id": "14",
          "type": "posts"
        }, {
          "id": "15",
          "type": "posts"
        }, {
          "id": "20",
          "type": "posts"
        }]
      }
    }
  },
  "included": [{
    "id": "14",
    "type": "posts",
    "attributes": {
      "commented": true,
      "comments": 10
    }
  }, {
    "id": "15",
    "type": "posts",
    "attributes": {
      "commented": false,
      "comments": 10
    }
  }, {
    "id": "20",
    "type": "posts",
    "attributes": {
      "commented": false,
      "comments": 10
    }
  }]
}

I'm using ember-data and my models are:

category

name: DS.attr('string'),
posts: DS.hasMany('post')

post

commented: DS.attr('string'),
comments: DS.attr('number'),
category: DS.belongsTo('category')

Maybe I will create an ember-twiddle, I'm having problem to simulate my problem with ember-data on ember-twiddle...




Aucun commentaire:

Enregistrer un commentaire