I think the logic works as expected and the possible reason why it was not working is because $scope.signUpSlot.id
may be undefined
.
I created a demo and you can open the browser console and see the call is actually made to the correct url:
PUT http://fiddle.jshell.net/api/events/123/slots/456 404 (NOT FOUND)