2017-02-11 9 views
0

Заданные варианты по этому вопросу в нескольких местах и ​​прочитать ВСЕ на Google, поэтому я уверен, что этого не может быть сделано. Но думал, что я спрошу здесь в последний раз.Угловой - объединить несколько текстовых входов после получения http url

Я хочу добавить URL-адрес GET $ HTTP с несколькими параметрами ввода текста.

Например

Дата 1 TextInput, день, месяц, год, +00 + '-' Дата 2 TextInput, день, месяц, год, +00 + '-'

= 1101201700-2101201700

Это код, который у меня есть до сих пор, и он работает до такой степени, что я добавляю все, что я набираю для URL-адреса, но как только я добавляю другое поле ввода, это не говорит о том, что второй вход не определен ,

Любые идеи? Хотите, чтобы держать его просто слишком идеально ...

.controller("DateCtrl", function ($scope, $stateParams, dateService) { 
$scope.events = dateService.getEvents($stateParams.date).then(function (events) { 
    $scope.events = events; 
    console.log("Date Controller1 says: Hello World - I also work"); 

}); 

завод ....

 .factory('dateService', function ($http) { 
    var events = []; 

    return { 
     getEvents: function (date, date2) { 
      var params = { 
       date:date, 
       date2:date2 
      } 


      return $http.get('url' + "&" + params.date + "-" + params.date2).then(function (response) { 
       events = response.data.events; 
       return response.data.events; 
      }); 
     }, 

состояние ...

.state('date', { 
    url: "/date/:date/:date2", 
    templateUrl: "templates/Date.html", 
    controller: "DateCtrl" 
}) 

HTML ...

 <input type="text" placeholder="bla1" class="form-control" ng-model="date"/> 
<input type="text" placeholder="bla1" class="form-control" ng-model="date2" /> 

<a ui-sref="date({date:date,date2:date2})">Go</a> 

EDIT:

URL-адрес, который я хочу вызвать, является внешним, а не страницей в приложении.

Это близко $http.get with 2 parameter in ionic framework (angularjs)

Но я не уверен, что я делаю с контроллером, так как в моем коде я должен рамку с параметрами.

EDIT 2:

это теперь работает за исключением того, что date2 показывает, как «неопределенный» в строке URL-адрес ...

ответ

0

Если я правильно понимаю ваш вопрос, вы хотите, чтобы выполнить запрос GET и иметь более чем один параметр перешел в ваш запрос. Это может быть сделано в следующем формате:

$http.get('yoururl/:param1/:param2') 

Вы можете сложить PARAMS используя этот синтаксис (пока URL не превышает 2000 символов), но вам нужно будет убедиться, что есть «/», чтобы разделите каждый парам, который вы проходите, иначе он вернется как неопределенный. Если вы хотите передать в двусмысленном числе Params, потому что вы не будете постоянно быть проходящими в том же количестве, вы можете иметь один из параметров и использование:

JSON.stringify(object) 

передать в объекте, который затем может быть разобранным на другая сторона запроса.

EDIT:

Код выше для определения ваших маршрутов. То, что вы ищете, немного отличается от моего ответа.Вам нужен способ определения URL-адреса, когда вы его вызываете.

Попробуйте следующий формат:

var params = { 
    date1: 'value1', 
    date2: 'value2 
} 

$http.get('yoururl/' + params.date1 + '/' + params.date2) 

Это вставит значение объекта в URL.

+0

AHH! Я попробовал стекирование, но я не включил «/"....I. Попробуем - спасибо! – Kyle

+0

Это не работает, к сожалению. Он совершает ту же ошибку, с которой я столкнулся несколько раз с вариациями этой идеи, включая текст «date1» «date2», но не текст, который вводится в поле. – Kyle

+0

Запросы GET не берут данные в отдельный параметр - они должны быть прямыми в запросе URL. Если urlr и не делает что-то, о чем я не знаю, то, как вы передаете свои параметры с запятой, а затем объект является форматом POST. Вам нужно отформатировать GET, как я сделал выше, где они находятся в строке запроса URL. –

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

  • Нет связанных вопросов^_^