Ошибка типа: невозможно назначить только для чтения свойство 'verify_success_url'

0

Проблема с угловым модулем во всех браузерах 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>

1 ответ

0

Поэтому я решил решить эту проблему. Проблема заключалась в использовании JSON.stringify тогда как мне нужно было использовать angular.extend

parameter = angular.extend(
zone_id: r.zone_id
.....

Я не понял, но confirm_success_url - это параметр, который автоматически добавляется вместе с данными, поэтому до того, как он не будет включен в другие параметры.

Во всяком случае, теперь он работает во всех браузерах.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню