DS.Error中带下划线的属性名称

时间:2015-01-14 23:55:57

标签: validation ember.js ember-data

DS.Errors中的属性是否可以保留下划线。我有一个字段名称为value = first_name。这是我从服务器返回的响应:

errors: {
  first_name: ["enter name"]
}

当我在console.log中响应promise时,属性为camelCased(firstName)。我知道这是Ember的默认行为,但我想知道是否可以将属性名称保留为first_name作为错误?

我见过:

App.ApplicationSerializer = DS.RESTSerializer.extend({
  keyForAttribute: function(attr) {
    return Ember.String.underscore(attr).toUpperCase();
  }
});

但是这没有对响应做任何事情,我找不到一个例子来保留下划线的错误。

我添加了一个jsbin来帮助显示我的问题:http://emberjs.jsbin.com/jicuvu/1/edit

1 个答案:

答案 0 :(得分:1)

在你的情况下,Ember不应该影响错误对象属性,你只是自己添加了camelCasing(似乎是偶然的)。 forEach应该如下:

 Ember.keys(jsonErrors).forEach(function(key) {
   return errors[key] = jsonErrors[key];
 });

但是,如果您试图摆脱Ember默认的camelCased序列化模型,可以在RESTAdapter中使用pathForType:

var Adapter = DS.RESTAdapter.extend({
  ...
  pathForType: function(type) {
    return Ember.String.underscore(type);
  }
  ...
});