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
答案 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);
}
...
});