2016-09-02 3 views
0

У меня есть контроллер угловой системы. Я звоню в спокойный web-сервис.Функция вызова jquery внутри контроллера Angularjs

app.controller('ordersCtrl', function($scope, $http, $filter) { 

$scope.fetchOrders = function() { 
    var url = "http://localhost:8080/blah/blah"; 
    // $http({method: 'POST', url : url}) 

    var data = $.param({"title": "kuldeep"}); 

    $http({method: 'POST', 
      url: url, 
      data: data, 
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}}) 
     .success(function(data) { 
      console.log(data) 
     }); 
} 

Я хочу представить данные формы. Таким образом, использование jquery для преобразования объекта в форму данных. Но получение ошибки:

$ is not defined 
at Scope.$scope.fetchOrders (ordersModule.js:34) 

Что мне делать, чтобы ввести jquery внутри контроллера. Также будет оценен любой альтернативный способ получения данных формы.

+0

Вы должны загрузить 'jquery.js' на DOM перед' angular.js' – Vineet

+0

@Vineet Это не помогло. –

+0

@ Vineet Почему раньше? Приложение запускается ** после ** загрузки страницы. – zeroflagL

ответ

1

Нет необходимости использовать Jquery пары использовать функцию угловой Params сериалайзер:

$ httpParamSerializerJQLike Альтернатива $ HTTP PARAMS сериализатор что следует логике методы JQuery в пары(). Сериализатор также сортирует параметры по алфавиту.

$http({ 
    url: myUrl, 
    method: 'GET', 
    params: myParams, 
    paramSerializer: '$httpParamSerializerJQLike' 
}); 


.controller(function($http, $httpParamSerializerJQLike) { 
    //... 

    $http({ 
    url: myUrl, 
    method: 'POST', 
    data: $httpParamSerializerJQLike(myData), 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded' 
    } 
    }); 

}) 

ИЛИ чтения Угловое API Doc: == Click Me>$httpParamSerializerJQLike

+0

Это сработало для меня. –

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