AngularJs动态更新$http方法的URL
AngularJs updating the URL for $http method dynamically
所以我正在尝试在Angular中进行无限滚动。我想在我的页面上显示的数据项由第三方API提供,URL看起来像:
http://example.com/item/data/?param=item&页面大小=100&第1页
现在,我使用$http对服务器进行了一次成功的ajax调用,并创建了一个指令,在滚动时将从url加载更多的Items。但我无法更新URL,一旦我开始滚动,我就会希望我的URL变成:
http://example.com/item/data/?param=item&页面大小=100&第1页
http://example.com/item/data/?param=item&页面大小=100&第2页
http://example.com/item/data/?param=item&页面大小=100&第3页
http://example.com/item/data/?param=item&页面大小=100&第4页
……
然而,每当我滚动URL时,它就会变成:http://example.com/item/data/?param=item&页面大小=100&第1页
http://example.com/item/data/?param=item&页面大小=100&第1页
http://example.com/item/data/?param=item&页面大小=100&第1页
http://example.com/item/data/?param=item&页面大小=100&page=1
这意味着页面参数永远不会更新,或者即使是Shttp也永远不会正确执行它。有人能告诉我如何更新$http中的URL参数,该参数从第三方API获取数据。
代码大致如下:
var page = 1;
var url = 'http://example.com/item/data/?param=item&pagesize=100&page=' + page;
$http.get(url)
.success(function(data, status, config, headers) {
$scope.page = 1;
for (var i = 0; i < data.items.length; i++) {
$scope.totalTags = data.items;
$scope.page += 1;
}
$scope.loading = false;
})
.error...//rest of the stuff
代码中的几个问题:
- var-page和$scope.page是两个不同的变量;你使用前者来选择$http请求中的页面,但从不递增。这就是为什么你总是得到页面1
- 您的循环不能执行您希望它执行的操作:您将数据替换一百次,而不是将新数据附加到现有集,并且您将$scope.page增加一百次而不是一次(但您不使用$scope.page,因此它不会执行任何操作,尤其是因为每次检索数据时都将其放回1)
请尝试以下代码片段:
$scope.page = 1;
var url = 'http://example.com/item/data/?param=item&pagesize=100&page=' + $scope.page;
$http.get(url)
.success(function(data, status, config, headers) {
for (var i = 0; i < data.items.length; i++) {
$scope.totalTags.push(data.items[i]);
}
$scope.page += 1;
$scope.loading = false;
})
.error...//rest of the stuff
按照函数允许的方式分离url和参数,然后可以更容易地更改参数。
var url="http://example.com/item/data/";
var params = {
param:"item",
pagesize:199,
page:page
};
params.page = 2;
$.get(url,params,function(data){});
- 有没有一种方法可以从URL跟踪请求的域
- 如何在router.get()方法中传递url作为参数
- 在不重新加载的情况下更改标头URL的任何方法
- 使用GET方法通过AJAX成功提交表单后更改url
- 使用 POST 方法通过 ajax 发送的数据在发送到服务器之前是否必须进行 URL 编码
- Meteor JS在服务器发布方法中获取请求的url
- 使用表单和POST方法通过Javascript获取URL参数
- 如何在不更改URL的情况下使用HTTP方法POST
- 使选择框在URL中使用变量重新加载页面的最简单方法
- 有没有任何方法可以使<选择>转到url
- Javascript;html:有没有一种方法可以找到一个顶级的命名窗口(或选项卡)并将其带到前台,而不是将url加载到
- Javascript错误Object函数没有方法'url'
- qoxdoo:POST方法,不在URL中显示参数
- Angular为不同的url调用不同的控制器方法
- 有没有任何方法可以在单页应用程序中记录url和哈希片段
- 如何通过 .ajax() jQuery 方法获取 Carrierwave 上传到 Amazon S3 的图像的 URL
- 将ascii字符发送到mailto而不达到URL限制的最有效方法
- Tumblr API 标记方法 - URL 没有相应的响应
- 想要通过GET方法从URL获取值,然后想在我的标题区域的右上角显示这些值
- URL 草稿规范验证方法