【问题标题】:Can't Display Records from Ember.js Data in Template无法在模板中显示来自 Ember.js 数据的记录
【发布时间】:2017-12-15 09:19:16
【问题描述】:

我想在我的模板中显示来自 Ember.js 数据存储的记录。在我的控制器中,我有以下代码:

orders: null,

[...]

openOrderModal: function(name) {
  $('.ui.' + name + '.modal').modal('show');
  var orders = this.get('store').peekAll('orders');
  console.log(orders);
  this.set('orders', orders);
},

我从数据存储中查看所有记录并将其保存到变量中。 在模板中我有一个循环。但它不起作用。

{{#each orders as |order|}}
  {{order.id}} {{order.supply_id}}
{{/each}}

你能帮帮我吗?

亲切的问候

【问题讨论】:

  • 什么到底行不通?你能确认这个函数被调用了吗?如果是这样,它是否记录了预期的订单?模态中的其他内容是否显示? (为什么$('... 在那里?)
  • 我偷看另一个模型。它奏效了。我认为问题在于 Ember 数据存储中的记录在 Ember 检查器中是绿色的。他们没有被保存
  • 当我尝试时:this.get('store').peekAll('orders').findBy('isNew', true);数组“订单”为空

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


【解决方案1】:

peekAll 只返回存储中已经存在的记录。如果您没有在其他地方加载任何订单(例如在您的路线中,应该加载记录的位置),它将返回一个空列表。但是,It should include unsaved, just created records 的适当型号。

findAll 是让 store 进行 API 调用的方法,但返回一个 promise,即您必须在 then 方法中处理检索到的记录(除非您将它们加载到路由的 model 钩子中,返回的 Promise 会得到适当的处理)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多