gpt4 book ai didi

javascript - Ember 3.5 属于关系未解决

转载 作者:行者123 更新时间:2023-12-03 00:47:01 25 4
gpt4 key购买 nike

我以前有 emberjs 1.13,我升级到了 3.5我遇到了属于关系的问题,我无法访问其中的数据。我的代码如下

型号

export default DS.Model.extend( {

title: DS.attr( 'string' ),
description: DS.attr( 'string' ),
published: DS.attr( 'boolean' ),
publishedAt: DS.attr( 'date' ),

course: DS.belongsTo( 'course' ),
author: DS.belongsTo( 'profile', { async: true } ),

viewed: false,
isNew: true,

}

在 Controller 中

this.get('model.published') working 
this.get('model.author.name') not working

但是相同的代码可以在 emberjs 1.13 上运行

使用 ember 数据 1.13

enter image description here

使用 ember 数据 3.5

enter image description here

最佳答案

这是从 1.13 直接升级到 3.5 的重大升级。

发生了很多变化。为了充分理解发生了什么变化以及原因,我强烈建议阅读 Ember release notes 中的每个内容。每次升级次要或主要版本时。 super 有帮助。

很可能作者未加载到商店中。检查路线的 model()、网络请求和 Ember Inspector(如果数据已加载)。

如果加载,它可能是async: true。尝试删除它吗?

这是 Ember 3.5 中的一个工作示例:

app/models/thing.js:

import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo } from 'ember-data/relationships';

export default Model.extend({

// Attributes
title: attr('string'),
description: attr('string'),
published: attr('string'),
publishedAt: attr('string'),

// Relationships:
// No need for async: true
course: belongsTo('course'),
author: belongsTo('author')

});

app/models/author.js:

import Model from 'ember-data/model';
import attr from 'ember-data/attr';

export default Model.extend({
name: attr('string')
});

app/route/thing.js

import Route from '@ember/routing/route';

export default Route.extend({
model(params) {
// Assuming you use JSON API
// Make sure `author` is included when fetching `thing`
return this.store.query('thing', {
include: 'author, course'
}),
}
});

app/controllers/thing.js

import Controller from '@ember/controller';

export default Controller.extend({
init(){
console.log(this.model.author.name)
}
});

关于javascript - Ember 3.5 属于关系未解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53200940/

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