Проблема с угловым модулем во всех браузерах EXCEPT для Firefox называется "ng-token-auth". На сервере rails я использую gem "devise-token-auth", который работает с угловым модулем, чтобы создать структуру аутентификации маркеров API.
Проблема, с которой я $auth.SubmitRegistration()
связана с $auth.SubmitRegistration()
. После примера, опубликованного в github (https://github.com/lynndylanhurley/ng-token-auth#authsubmitregistration) в моем users_registration.coffee ngController, я отправляю данные формы (преобразованные в JSON) через переменную в SubmitRegistration() функцию, которая затем отправляется в рельсы (обработанные с помощью маркера dev-token-auth).
Тем не менее, сразу же при отправке формы перед публикацией каких-либо данных возникает ошибка javascript, TypeError: Cannot assign to read only property 'confirm_success_url' of
user_registrations.coffee (контроллер):
angular.module('Authentication').controller('UserRegistrationsController',['$scope', '$rootScope','$auth','$state',
($scope, $rootScope, $auth, $state) ->
$scope.handleRegBtnClick = ->
r = $rootScope.availability
f = $scope.registrationForm
parameter = JSON.stringify(
zone_id: r.zone.id
first_name: f.first_name
last_name: f.last_name
email: f.email
password: f.password)
$auth.submitRegistration(parameter).then ->
$auth.submitLogin
email: $scope.registrationForm.email
password: $scope.registrationForm.password
])
form.html:
<form ng-submit="handleRegBtnClick()" role="form" ng-init="registrationForm = {}">
<div class="form-group">
<label for="first_name">First Name</label>
<input type="first_name"
name="first_name"
id="first_name"
ng-model="registrationForm.first_name"
required="required"
class="form-control">
</div>
........
<div class="form-group">
<label for="email">Email</label>
<input type="email"
name="email"
id="email"
ng-model="registrationForm.email"
required="required"
class="form-control">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password"
name="password"
id="password"
ng-model="registrationForm.password"
required="required"
class="form-control">
</div>
<button type="submit" class="btn btn-primary btn-lg">Register</button>
</form>
Поэтому я решил решить эту проблему. Проблема заключалась в использовании JSON.stringify
тогда как мне нужно было использовать angular.extend
parameter = angular.extend(
zone_id: r.zone_id
.....
Я не понял, но confirm_success_url
- это параметр, который автоматически добавляется вместе с данными, поэтому до того, как он не будет включен в другие параметры.
Во всяком случае, теперь он работает во всех браузерах.