Ember:之后获取数据

时间:2016-08-05 08:52:35

标签: ember.js

我通过route.js中的模型从API中获取了一些数据。这个数据包含一个自己的id,没有关系或包含东西来获取细节。所以我必须发出另一个API请求来获取具有该id的对象。

我用一个组件做了它(为了能够发送id参数)并且它有效,但我想知道这是否可行,如果是,如果我做得对,它不能简化(因为对于这么简单的任务我看起来很复杂):

我使用{{resource-name id=evaluation.manager}}

调用我的组件

组件模板只包含{{name}}

component.js:

import Ember from 'ember';
export default Ember.Component.extend({
    store: Ember.inject.service(),
    _getResource(id) {
        return this.get('store').findRecord('resource', id);
    },
    resource: Ember.computed('id', function() {
        const id = this.get('id');
        const proxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);
        return proxy.create({
            promise: this._getResource(id)
        });
    }),
    name: Ember.computed('resource.isFulfilled', function() {
        if (this.get('resource.isFulfilled')) {
            return `${this.get('resource.lastName')} ${this.get('resource.firstName')}`;
        }
        else {
            return "...";
        }
    }),
    didReceiveAttrs() {
        const id = this.getAttr('id');
        Ember.assert('resource-name must have an "id" attribute!', !Ember.isBlank(id));
    }
});

0 个答案:

没有答案