喜友
我是非常新的成员-工作在建设一个ember前端,铁轨背面认证与设计。试图在客户端显示服务器端错误.
我读过很多关于这件事的文章,但似乎都没有用。
登录页位于/会话/新
会话新模板(Emblem.js)
Ember.TextField valueBinding="email" placeholder="Email" type="text"
= errors.email会议新路
SiloStore.SessionsNewRoute = Ember.Route.extend
model: -> @store.createRecord('session')
setupController: (controller, model) ->
controller.set('content', model)会话新主计长
SiloStore.SessionsNewController = Ember.ObjectController.extend
needs: ['admin']
actions:{
logIn: ->
self = @
content = @content
@content.save().then(->
self.get('controllers.admin').set('content', content);
self.transitionToRoute 'admin.dashboard'
)
}会议主计长(Rails)
render json: {
errors: {
email: ["invalid email or password"]
}
}, status: :unprocessable_entity控制台中Rails Server中的JSON错误
{"errors":{"email":["invalidemailorpassword"]}}现在,我没有在模板中显示在Ember.TextField下面的错误--我得到了一个很大的、难看的红色错误,如下所示:
POST http://dev.siloarts.net:3000/api/v1/sessions 422 (Unprocessable Entity)
Error: The backend rejected the commit because it was invalid: {email: invalid email or password}有什么想法吗?我肯定这是件愚蠢的事.
哦,哦,这是我的调试信息:
DEBUG: -------------------------------
DEBUG: Ember : 1.4.0-beta.1+canary.011b67b8
DEBUG: Ember Data : 1.0.0-beta.5+canary.d9ce2a53
DEBUG: Handlebars : 1.1.2
DEBUG: jQuery : 1.10.2
DEBUG: ------------------------------- 谢谢你,提前爱休
发布于 2014-02-24 13:03:48
此错误还防止错误结构绑定。您可以这样修复/修补它:需要保存时总是调用person.save().catch(->)。这将捕获错误并进行记录,但是仍然可以在模型上使用becameError:和becameInvalid,或者只需自己实现函数。您还可以按以下方式更改模型类:
App.Model = DS.Model.extend
save: (catchErr=true) ->
if catchErr
fail = ->
console.log('Save failed')
retutn @_super().catch(fail)
@_super()而不是为Person对象更改基callas。
App.Person = App.Model.extend
... 然后当您需要真正的捕获时,使用person.save(false).catch(fn)
发布于 2013-12-28 20:32:43
升级后,我也遇到了同样的错误。降级到Ember 1.2.0应该可以解决您的问题:)
https://stackoverflow.com/questions/20770283
复制相似问题