使用ember-cli在控制器之间共享Ember对象

时间:2015-09-04 16:15:47

标签: ember.js ember-cli

我试图在不同的控制器之间共享一个Ember对象,以便装饰'它通过应用程序提供更多信息。

在一个简单的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 个答案:

答案 0 :(得分: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 :(得分:-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;
  }
});