2016-01-11 2 views
0
------------------------------- 
Ember  : 1.13.11 
Ember Data : 1.13.15 
Firebase : 2.3.2 
EmberFire : 1.6.3 
jQuery  : 1.11.3 
------------------------------- 

J'ai deux terminaux dans mon application Firebase. /employees et /subjects. Dans mon application ember je veux ajouter des sujets à un employé (employees/$id/subjects). Le problème est, je ne sais pas comment charger tous mes sujets de /subjects afin que je puisse les ajouter à mon tableau.EmberFire Ajouter une relation à partir d'un modèle différent

Ceci est mon parcours:

Router.map(function() { 
    this.route('dashboard'); 
    this.route('employees', function() { 
    this.route('employee', { path: '/:id'}); 
    }); 
}); 

Et ceci est mon modèle

export default Ember.Route.extend({ 
    model(params) { 
    return this.store.findRecord('employee', params.id); 
    } 
}); 

J'ai essayé différentes choses pour obtenir ce travail, la création d'un this.route(employee, function(){ this.route('subjects') } sous-parcours, le chargement d'un deuxième modèle mon modèle d'employé, dont aucun n'a fonctionné. Je suis nouveau dans les braises, alors j'ai peut-être mélangé certaines choses. Toute aide est appréciée.

EDIT

modèle employé

export default DS.Model.extend({ 
    name: DS.attr('string'), 
    position: DS.attr('string'), 
    accessoryPosition: DS.attr('string'), 
    education: DS.attr('string'), 
    experience: DS.attr('string'), 
    imgUrl: DS.attr('string'), 
    subjects: DS.hasMany('subject', {async: true}) 
}); 

Sujet Modèle

export default DS.Model.extend({ 
    name: DS.attr('string') 
}); 

Décrire peut-être mes intentions un peu mieux, voici le flux que je veux:

utilisateur sélectionne un employé, l'information des employés est s montré avec une liste de sujets assignés à cet employé. Mais j'ai aussi besoin de la liste complète des sujets disponibles, si je veux attribuer un nouveau sujet à un employé. D'où ma question. Espérons que cela fait sens

+1

si vous voulez obtenir tous 'subjects', avez-vous essayé 'this.store.findAll ('sujet')'? – Bek

+0

également, postez vos fichiers de modèle d'employé et sujets, s'il vous plaît –

+0

@Remi Voir ci-dessus – Chris

Répondre

1

D'accord, alors vous pouvez le faire dans votre itinéraire:

export default Ember.Route.extend({ 
    model(params) { 
    return Ember.RSVP.hash({ 
      employee: this.store.findRecord('employee', params.id), 
      subjects: this.store.findAll('subject')   
    }); 
    } 
}); 

puis dans votre modèle:

{{#each employee.subjects as |subject|}} 
    {{!these are your employee subjects}} 
    {{subject.name}} 
{{/each}} 



{{#each subjects as |subject|}} 
    {{!these are all your subjects}} 
    {{subject.name}} 
{{/each}} 
+0

Lorsque je fais cela, mon employé de modèle enfant ne se charge pas. Même si je prends le {{#if model.isLoaded}}, il ne l'affiche toujours pas? – Chris

+0

Avez-vous essayé '{{model.employee.subjects}}'? –

+0

Génial, ça marche! – Chris