JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ember.js – 如何防止Ember Data保存属性(即只读属性)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用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);
  },});

大佬总结

以上是大佬教程为你收集整理的ember.js – 如何防止Ember Data保存属性(即只读属性)全部内容,希望文章能够帮你解决ember.js – 如何防止Ember Data保存属性(即只读属性)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。