2015-09-04 2 views
0

Я пытаюсь разделить объект Ember между разными контроллерами, чтобы «украсить» его дополнительной информацией при прохождении через приложение.Совместное использование объекта Ember между контроллерами с ember-cli

В простом Ember приложение, которое я бы просто сделать:

App.UserDetails = Ember.Object.extend({name: 'Darryl', age: 26 }); 

App.DetailsRoute = Ember.Route.extend({ 
    model: function() { 
    return App.UserDetails; 
    } 
}); 

App.AccountRoute = Ember.Route.extend({ 
    model: function() { 
    return App.UserDetails; 
    } 
}); 

Но я не могу видеть, что я бы организовать это в Ember CLI

Благодаря

ответ

2

Вы должны использовать данные библиотеки настойчивость, как Ember Data, потому что он был разработан для таких вещей, как хранение пользовательских деталей, и есть тонны информации, как это сделать, но вы спрашиваете об обменивании объекта так:

Вы можете использовать Ember.Service:

Подробности услуги:

import Ember from 'ember'; 

export default Ember.Service.extend({ 
    name: 'Darryl', 
    age: 26 
}); 

отдых:

App.DetailsRoute = Ember.Route.extend({ 
    details: Ember.inject.service(), 
    model: function() { 
    return this.get('details'); 
    } 
}); 

App.AccountRoute = Ember.Route.extend({ 
    details: Ember.inject.service(), 
    model: function() { 
    return this.get('details'); 
    } 
}); 
+1

Нет действительно уверен, что данные Ember Data имеют отношение к его вопросу. +1 для услуг Ember. Это именно то, для чего они предназначены. – GJK

+0

У этого есть, потому что я думаю, что Сервисы были предназначены для чего-то еще, а Ember Data - для хранения данных в приложении. Я думаю, кто-то может использовать инъекцию зависимостей в контейнере. –

+1

Данные Ember были созданы для _persisting_ данных, а не для их хранения. Если данные, которые он хочет сохранить, являются эфемерными (что, похоже, может быть), то услуги Ember являются идеальным инструментом. – GJK

-1

То же самое можно сделать, как это,

//userdetails.js 
export default Ember.Object.create({ 
    name: 'Darryl', 
    age: 26 
}); 

В ваших маршрутов,

//details.js 
import obj from 'path/userdetails'; 
export default Ember.Route.extend({ 
    model : function(){ 
    return obj; 
    } 
}); 

//account.js 
import obj from 'path/userdetails'; 
export default Ember.Route.extend({ 
    model : function(){ 
    return obj; 
    } 
}); 
+0

Просьба указать причину downvote, поэтому я могу исправить свои знания. – AcidBurn

Смежные вопросы