ember.js - 如何处理同一资源的多个 ember 模型
问题描述
我有一个模型user
,app/models/user.js
其中包含以下内容:
import attr from 'ember-data/attr';
import Model from 'ember-data/model';
export default Model.extend({
email: attr('string'),
username: attr('string'),
firstName: attr('string'),
lastName: attr('string'),
currency: attr('string'),
locale: attr('string'),
avatar: attr('string')
});
我想在不同的路线上更新它的属性:
在http://localhost:4200/account/profile我只想更新:
- 名
- 姓
- 头像
- 用户名
在http://localhost:4200/account/preferences我只想更新:
- 语言环境
- 货币
我正在使用 ember pod 结构,因此我想在这些路由中创建两个模型,使用自定义适配器和序列化程序来处理验证并仅序列化我想要的每个路由的属性。
- models
- user.js
- pods
- account
- profile
- adapter.js
- controller.js
- model.js
- route.js
- serializer.js
- template.hbs
- preferences
- adapter.js
- controller.js
- model.js
- route.js
- serializer.js
- template.hbs
但是这个解决方案在数据绑定方面存在问题,因为我没有更新user
模型。
这样做的好方法是什么?
解决方案
您是否在您的应用程序中遵循一种混合结构(经典 + pod)?
如果您使用的是pod-based
布局,您可以销毁它
- models
- user.js
并在您的 pod 的每个模型中都有相应的字段。说进去
pods/account/profile/model.js
import attr from 'ember-data/attr';
import Model from 'ember-data/model';
export default Model.extend({
email: attr('string'),
username: attr('string'),
firstName: attr('string'),
lastName: attr('string'),
avatar: attr('string')
});
pods/account/preferences/model.js
import attr from 'ember-data/attr';
import Model from 'ember-data/model';
export default Model.extend({
currency: attr('string'),
locale: attr('string')
});
推荐阅读
- html - 打开软件键盘时保持页脚可见
- android - 具有多个主题的firebase消息传递条件不起作用
- javascript - 如何在不先单击的情况下自动注销用户会话
- tableau-api - Tableau 中的条件格式连接到多维数据集数据
- apache - 如何为多个域变体生成 LetsEncrypt 证书?
- javascript - 如何使用 OfficeJS 获取带有 Outlook 365 消息打印预览的 URL?
- java - 使用 ButterKnife 处理自定义 AlertDialog 时出现异常
- java - Android 中的电话目录以及从其中获取任何内容的问题
- python - 将产量输出传递给工作人员池时出现 Python 类型错误。想把一个大文件分成几行
- sql - 我正在尝试使用 sql loader 将数据加载到我的 oracle 表中