【问题标题】:Set component property to data from store将组件属性设置为存储中的数据
【发布时间】:2016-06-24 22:27:22
【问题描述】:

从您的组件中检索数据似乎是一种不好的做法,但这是一种实验(希望代码能够自我解释)

import Ember from 'ember';

export default Ember.Component.extend({
    store: Ember.inject.service(),
    items: [],
    init () {
        this._super(...arguments);
        var store = this.get('store'); 
        let items =  store.findAll('dealtype');
    }
});

当我在组件模板中循环“项目”时,我可以看到我的 api 被命中(调试)并返回数据(ember 检查器),但它始终是空的。

好奇我做错了什么(还在学习)

【问题讨论】:

  • items 是一个承诺,这可能不是你想要的。你的意思是说store.findAll('dealtype').then(items => this.set('items', items))

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


【解决方案1】:

您没有在init 中设置items 设置为:

... let items = store.findAll('dealtype'); this.set('items', items);

【讨论】:

  • 这会将items 属性设置为一个promise,这可能无法正常工作。
  • @torazaburo 不,没关系。这不是一个正常的承诺。它也是数组代理
  • 记住 Ember 组件扩展了一个 Ember 对象。所以你必须使用 this.get 和 this.set 来访问属性,这就是为什么 this 有效而 'let = ' 无效。
猜你喜欢
  • 1970-01-01
  • 2021-08-21
  • 2011-02-19
  • 2019-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-26
相关资源
最近更新 更多