Hi, I’m new to Ember but I believe I found a bug or something. Let me tell you in details what happens in the app I’m currently developing.
Twiddle: Ember Twiddle
This is my route model:
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
name: attr('string'),
category: attr('string'),
image: attr('string'),
creator: belongsTo('user'),
pois: hasMany('poi')
});
This is my poi model:
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
name: attr('string'),
address: attr('string'),
lat: attr('number'),
lon: attr('number'),
rating: attr('number'),
type: attr('number'),
owner: belongsTo('user'),
inroutes: attr('number'),
title: attr('string'),
text: attr('string'),
route: belongsTo('route'),
images: hasMany('image'),
primary_image: Ember.computed('images', function(){
return this.get('images').get('firstObject');
})
});
Then I have a router called route.js:
import Ember from 'ember';
export default Ember.Route.extend({
model(params){
return {route_id: params.route_id};
},
actions: {
didTransition(){
var $this = this;
var $model = $this.get('currentModel');
var $roteiro = {};
let Controller = Ember.getOwner(this).lookup('controller:lang');
this.store.findRecord('route', $model.route_id).then((route) => {
$roteiro = {
id: route.get('id'),
name: route.get('name'),
user: '',
pois: []
};
route.get('creator').then((user) => {
$roteiro.user = user.get('name');
});
route.get('pois').then((points) => {
console.log(points); //Basically its here where it fails sometimes.
var $i = 0;
points.forEach(function(poi){
$roteiro.pois.push(poi);
$i++;
if($i == points.length){
var sponsor = {name: 'Munícipio da Lourinhã', route: 'lang.index'};
Controller.set('roteiro', $roteiro);
Controller.set('sponsor', sponsor);
}
});
});
});
}
}
});
I have to routes, Number 1 and Number 2. Booth has the same poi relationships, if they are different it works has it should, but if they have at least one that is the same, it will not work.
If I refresh the page in route/1 or route/2 it works has it should. But if I move direct from route/1 to route/2 with a link-to, it will not return the poi relations, it return an empty array.
I can’t understand what could this be… its so strange…