【发布时间】:2019-03-20 02:16:05
【问题描述】:
我在app/models/user.js 中有一个模型user,具有以下内容:
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 模型。
这样做的好方法是什么?
【问题讨论】:
-
我看不出模型和渲染 UI 以更新模型的某些部分是如何相互关联的。当然,您应该确保验证不是在模型上进行,而是在路由/控制器或组件级别进行。
-
如果您发现我的解决方案有帮助,请验证我的回答?谢谢
标签: ember.js ember-data