Skip to content

Instantly share code, notes, and snippets.

@jandudulski
Last active December 22, 2015 09:09
Handling server errors in angular
angular.module('app').controller 'UserCtrl', ($scope, User) ->
$scope.save(user) ->
$scope.errors = {}
success = ->
# do something
error = ->
angular.forEach result.data.errors, (errors, field) ->
$scope.form[field].$setValidity('server', false)
$scope.errors[field] = errors.join(', ') # e.g. username is already taken
User.create(user).then(succes, error)
%form name: 'form', novalidate: true, ng: { submit: "save(model)" }
%input type: "text", name: "username", ng: { model: "user.username" }, name: "username", server: { error: "true" }
.error ng: { show: "form.username.$dirty && form.username.$invalid" }
%span ng: { show: "form.username.$error.server" }
{{ errors.username }}
%input type: "submit", value: "Save"
angular.module('app').directive 'serverError', ->
{
restrict: 'A'
require: '?ngModel'
link: (scope, element, attrs, ctrl) ->
element.on 'change', ->
scope.$apply ->
ctrl.$setValidity('server', true)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment