我正在使用Ember 2.0在前端创建一个在线表单构建器,后端使用json_api_resources gem创建Rails 4.2.
在发布表单的过程中,用户必须能够将一段代码剪切/粘贴到他/她的网页中,以便以“ajax”形式配置.
因此,Form模型的“embed-snippet”属性应该是只读的.当用户更改表单并重新保存记录时,我不希望将代码段的内容发送回服务器.
我考虑过的一些方法:
>修改序列化程序以检查此特定属性,并将其从有效载荷中删除,然后再将其发送到后端
>将’embed-snippet’字段转换为与Form模型关系的单独模型,然后将其从存储中排除
>创建一个新的Ember Data属性类型
理想情况下,会有一个更好的方法来处理这个问题.
就像是:
'DS.attr('string',{ readOnly: true })
所以我的问题是,什么是确保这个字段的内容不被发送回服务器的最佳方式?
解决方法
要获得{readOnly:true}功能(这使得添加新模型/ attrs更容易),您可以在JSONAPISerializer上自定义serializeAttribute方法:
(在serializers / application.js中):
import DS from 'ember-data'; export default DS.JSONAPISerializer.extend({ serializeAttribute(snapshot,json,key,attribute) { // do not serialize the attribute! if (attribute.options && attribute.options.readOnly) { return; } this._super(...arguments); },});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。