gpt4 book ai didi

Ember.JS - 尝试反转记录集合时出现 'TypeError: internalModel.getRecord is not a function'

转载 作者:行者123 更新时间:2023-12-02 21:56:59 26 4
gpt4 key购买 nike

--使用Ember数据2.7.1--

我试图反转记录集合的顺序,而不首先使用 toArray() 将它们转换为数组。这个对象集合来自 this.store.findAll('history-item') 返回的 promise 。

我想以 ember 的方式做到这一点,而不是让它们成为纯 JavaScript。我收到来自 record-array.js 的 TypeError:internalModel.getRecord。由于某种原因,当它尝试执行 objectAtContent() 时,它正在查找的内容似乎没有类型。通过堆栈跟踪,我可以看到我正在处理的对象是 [Class],类是历史项模型。在 objectAtContent() 之前进行一些堆栈调用,正在处理的对象从历史项模型切换到没有类型属性的其他类对象。

我能够使用 Ember Inspector 正确查看我的数据,如果我只是在模板上显示原始记录集合,它就会正确显示。

有人遇到过这种情况吗?

一些想法和考虑:

-findAll() 的工作原理是否有什么特别之处,因为它在后台重新加载,所以不允许逆转?我确实希望它继续重新加载实时数据。

-我正在使用 ember-cli-mirage 来模拟我的数据库和端点,并且我已经严格按照我认为的说明进行操作。我正在为 Mirage 使用未配置的 JSONAPISerializer,为 ember 使用未配置的 JSONAPIAdapter。它与从后面发送的元数据有什么关系吗?是否与未设置模型或记录有关?有什么特别的事情我必须做吗?

定义模型并尝试反转它的路由段:[注意:我知道在 route 准备数据(排序)可能不是惯例,但我只是将其放在这里以便于描述。我通常在 Controller 或组件外部进行]

  model(){
return this.get('store').findAll('history-item').then(function(items){
return items.reverseObjects();
}).catch(failure);

历史列表模型声明:

  export default DS.Model.extend({
question: DS.attr('string'),
answer: DS.attr('string')
});

Ember-Cli-Mirage config.js 端点:

  this.get('/history-items', (schema) => {
return schema.historyItems.all();
});

Ember-Cli-Mirage 历史项目固定装置:

  export default [
{id: 1, question: "1is this working?", answer: "Of course!"}
}

错误:

  TypeError: internalModel.getRecord coming from record-array.js

当我尝试创建保存记录时也会出现此问题。保存成功,但当模型重新加载(并尝试反转)时,它会失败并出现相同的错误。我是否有固定装置并不重要。

Controller :

  var newHistoryItem = this.store.createRecord('history-item', {
question: question,
answer: answer
});
newHistoryItem.save().then(success).catch(failure);

最佳答案

store.findAllstore.query返回的结果是一个AdapterPopulatedRecordArray(实时数组),突变方法如addObject,addObjects,removeObject,removeObjects,
不应使用 unshiftObject、unshiftObjects、pushObject、pushObjects、reverseObjects、setObjects、shiftObject、clear、popObject、removeAt、removeObject、removeObjects、insertAt

看看对应的discussionProposed PR抛出错误并建议使用 toArray() 复制数组而不是变异。

关于Ember.JS - 尝试反转记录集合时出现 'TypeError: internalModel.getRecord is not a function',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39067887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com