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

Attribute names with underscores in DS.Error

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

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

当我 console.log 来自承诺的响应时,属性是驼峰式 (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

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

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

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

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