2017-02-11 61 views
0

在几个地方被问及有关这个问题的变化,并在谷歌上阅读了所有的东西,所以我相当肯定这不能完成。但是我想我最后一次会问这里。Angular - 在获取http后输入多个文本输入url

我想追加一个GET $ HTTP URL与一些文本输入参数。

例如

日期1的TextInput,天,月,年, +00 + ' - ' 日期2的TextInput,日,月,年, +00 + ' - '

= 1101201700-2101201700

这是我到目前为止的代码,它的工作原理是将任何我输入的url添加到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> 

编辑:

我想调用的网址是外部网址,而不是应用内的网页。

这是接近$http.get with 2 parameter in ionic framework (angularjs)

但我不知道我与控制器做,因为在我的代码我不得不范围PARAM。

编辑2:

这个现在工作只是date2的是显示为在URL字符串“未定义” ......

回答

0

如果我理解你的问题正确,要执行一个GET请求,并有有多个参数传入您的请求。这可以通过以下形式进行:

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

可以叠加PARAMS使用语法(只要URL不超过2000个字),但你需要确保有一个“/”来除去你传入的每个参数,否则它会回到未定义状态。如果你想,因为你不会一致地传递相同量则params的暧昧数传,你可以有一个PARAM及用途:

JSON.stringify(object) 

在随后可以在分析的目的在于传递另一面来查询。

编辑:

上面的代码是用于定义你的路由。你要找的东西与我的回答有点不同。您需要的是定义网址的方式,因为您正在调用它。

请尝试以下格式:

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

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

这将插入对象的值到URL。

+0

AHH!我尝试了堆叠,但没有包含“/”我会试试看 - 谢谢! – Kyle

+0

这不起作用。它正在做同样的错误,我遇到了几次这个想法的变化 - 它包括文本“date1”“date2”,但不是输入到该字段中的文本。 – Kyle

+0

GET请求不会将数据放在单独的参数中 - 它们在URL请求中应该是笔直的。除非urlr正在做我不知道的事情,你用逗号传递参数的方式,然后是一个对象的方式是POST的格式。您需要按照上面的方式格式化您的GET,它们位于请求的url字符串内。 –

相关问题