在Ember中从我的模型中返回1个对象/记录

时间:2015-07-26 22:01:00

标签: ember.js ember-data ember-cli

在我运行的测试应用程序中,我为具有姓名,部门等的员工提供了夹具数据。目前,我的模型包含所有员工,并且我能够创建员工列表。但是,我想制作一个侧面组件,列出1个特定员工的信息(即点击的一个,作为工具提示)。我怎样才能将1名员工传递给我的组件?

我有一个操作,只要有人点击一个名字就会更新一个属性。我想做一个计算属性来根据该名称查询模型,但我不知道如何过滤我的模型只返回一个员工。

actions: {
  updateProfile(person) {
    set(this, 'profile', person);
  }
}

我的计算属性:

currentProfile: computed('profile', function(){
  return this.model.find('person', {'name': get(this, 'profile')});
}),

是否有一种简单的方法可以从模型中返回我想要的1个对象?

解决方案

我需要过滤this而不是模型本身。然后,我不得不返回firstObject,即使只有一个匹配(这是主要问题)。

 currentProfile: computed('profile', function(){
    return this.filterBy('name', get(this, 'profile')).get('firstObject');
 }),

1 个答案:

答案 0 :(得分:2)

试试这个:

currentProfile: computed('profile', function(){
  var query = {'name': get(this, 'profile')};
  return this.model.find('person', query).then(function(people){
    return people.get('firstObject');
  });
})