2014-02-20 4 views
0

Я хочу опубликовать вложенные параметры JSON в мое приложение rails. Он работает с JQuery:AngularJS: Опубликовать вложенный параметр JSON

$.ajax({ 
       type : 'POST', 
       dataType : 'json', 
       url : 'https://example.com/users/sign_in.json',         
       data : { 
        user : { 
         email : $('input[name="email"]').val(), 
         password : $('input[name="password"]').val() 
        } 
       } 
      }).success(... 

Но как это работает с AngularJS? Проводка не-вложенных параметров работает:

$http({ method: 'POST', 
      url: 'https://xxx.herokuapp.com/users/sign_in.json', 
      data: {email: $scope.user.email, password:$scope.user.password} 
      }).success(... 

Но как разместить вложенные параметры? Есть идеи? Заранее спасибо!

+0

он должен работать таким же образом. что происходит, когда вы пытаетесь опубликовать его с объектом пользователя {}? –

+0

Что не работает? Ваш угловой пример не вложен, его простой объект. – tymeJV

ответ

3

Ваши примеры на самом деле разные, IE в вашем Jquery один у вас есть объект user JSon, но вы не в своем угловом один, вы просто давая email и password и убежище» т фактически обернут их в user

вы пробовали это изменить:

data: {email: $scope.user.email, password:$scope.user.password} 

для этого:

data: { user : { email: $scope.user.email, password:$scope.user.password } } 
2

Вместо данных используются параметры. Я надеюсь, что это помогает

$http({ 
       method: 'POST', 
       url: 'https://xxx.herokuapp.com/users/sign_in.json', 
       params: {email: $scope.user.email, password:$scope.user.password } 

    }).success(function (response, status, headers, config) { 
+0

Мой JSON должен выглядеть так: {user: {email: "[email protected]", пароль: "secret"}}. Но это выглядит так: {email: «[email protected]», пароль: «secret»} – sebvst

+0

params используется для методов «GET», а данные используются для методов «POST» – Matthew

Смежные вопросы