2015-08-12 3 views
1

Как получить значение ng-модели и разместить его в запросе на отправку контроллера?Как передать данные модели в почтовый запрос?

(function(angular) { 
    angular.module('urlShortener', ['ngAnimate']) 
     .controller('shortenerController', function($scope, $http){ 
      $scope.customMode = false; 
      $scope.passData = function passData(){ 
       $http.post('/add', {url: raw_url}) 
        .success(function(data, status, headers, config) { 
         // this callback will be called asynchronously 
         // when the response is available 
        }) 
        .error(function(data, status, headers, config) { 
         // called asynchronously if an error occurs 
         // or server returns response with an error status. 
        }); 
      } 
     }) 


})(window.angular); 

модель я использую:

<input ng-model="raw_url" type="text" placeholder="Paste your url here and we will shrink it!" class="form-control"/> 
+0

http://stackoverflow.com/questions/25411682/sending-data-in-angular-http-post PARAMS. –

+2

ooh. Уведомление об изнашивании для успеха и ошибки https://docs.angularjs.org/api/ng/service/$http –

+0

Оцените обратную связь, спасибо @SMeaden –

ответ

3

Прочти из сферы: $scope.raw_url

От documentation:

директива ngModel связывает вход, выберите , textarea (или пользовательский контроль формы) для свойства в области с использованием NgModelController, который создается и отображается является директивой.

3

Вы почти там, для каждого нг-модели там должно быть обязательным в контроллере, который, кажется, не хватает в вашем случае. Вы можете сделать это следующим образом:

(function(angular) { 
    angular.module('urlShortener', ['ngAnimate']) 
     .controller('shortenerController', function($scope, $http){ 
      $scope.raw_url; //the binding 
      $scope.customMode = false; 
      $scope.passData = function passData(){ 
       $http.post('/add', {url: $scope.raw_url}) //raw_url to $scope.raw_url 
        .success(function(data, status, headers, config) { 
         // this callback will be called asynchronously 
         // when the response is available 
        }) 
        .error(function(data, status, headers, config) { 
         // called asynchronously if an error occurs 
         // or server returns response with an error status. 
        }); 
      } 
     }) 


})(window.angular); 

Однако, я хотел бы предложить оборачивать ваши почтовые запросы в службы/фабрикой которая является угловым способом делать вещи.

+0

Как насчет $ resource? –

+0

Никогда не использовался $ resource. Каково ваше предложение? –

+0

$ resource - это слой абстрактного текста, который находится выше $ http и предполагает шаблон RESTful/CRUD. –

1

$http.post('/add', {url: raw_url}) в этой строке заменить raw_url с $scope.raw_url

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