如何在角度$http中传递 URL 参数
How to pass URL params in angular $http
我正在将服务器端 CRUD 应用程序转换为 Angular.js并遇到了一个小问题。
我正在通过$http
获取数据并通过ng-repeat
显示所有数据。我想让用户能够单击特定项目并将其重定向到资源。
那么如何将 URL 参数传递给动态调用$http
呢?
以下是我如何构建指向资源的链接 (car.id = 3)
<a ng-href="/#/cars/{{car.id}}">Edit</a>
该链接应转到 http://local.dev/#/cars/3
那么如何在控制器中绑定动态 url?
这是我的控制器的精简版本
App.controller('CarIndexCtrl', ['$scope', '$http', '$location', function ($scope, $http, $location) {
$scope.car = {};
$http({
method: 'GET',
url: $location.$$url,
})
.success(function (data, status, headers, config) {
$scope.car = data;
})
.error(function (data, status, headers, config) {
// error
});
}]);
所以我有兴趣以角度方式绑定 URL。上述解决方案有效,但感觉非常像黑客。我对 Angular 不太熟悉,所以我现在喜欢坚持默认设置。不过,我可能会在以后考虑 restangular 或 ng-resource......
上述解决方案有效,但感觉非常像黑客。
我不认为它的黑客或乱七八糟的东西。
我会在控制器中生成 URL 列表(在我看来它更适合代码维护),而无需追加到 HTML 中。像这样:
$scope.urlList = [];
$http({
method: 'GET',
url: $location.$url,
})
.success(function (data, status, headers, config) {
$scope.car = data;
$scope.urlList.push("/#/cars/" + data.id);
})
.error(function (data, status, headers, config) {
// error
});
在 HTML 中之后:
<li ng-repeat="url in urlList" repeat-done="layoutDone()" ng-cloak>
<a ng-href="{{url}}">Edit</a>
</li>
顺便说一句,我建议您使用一些加载器,因为我们从承诺(又名异步)生成的 URL 链接因此会延迟。
演示小提琴
在你的应用中.js做这样的事情
var app = angular.module('YourAPP');
app.config(function ($routeProvider) {
$routeProvider
.when('/cars/:CarID', {
templateUrl: 'app/views/cars.html',
controller: 'CarIndexCtrl'
});
});
在您的控制器中
App.controller('CarIndexCtrl', ['$scope', '$http', '$location', '$routeParams', function ($scope, $http, $location, $routeParams) {
$scope.car = {};
$scope.carid = $routeParams.CarID;
$http({
method: 'GET',
url: $location.$$url,
})
.success(function (data, status, headers, config) {
$scope.car = data;
})
.error(function (data, status, headers, config) {
// error
});
}]);
并在控制器中的任何位置使用 carid。希望对您有所帮助。
相关文章:
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- 如何使用Javascript从URL参数中自动填充文本字段
- 如何将Google Analytics配置为将URL参数作为单个页面进行跟踪
- 在url参数javascript中存储键值对列表
- backbone.js-映射标准url参数-使用多个参数
- 将URL参数传递给ui sref
- Javascript从字符串中剥离所有url参数
- Javascript/jQuery获取所有url参数并添加/更改一个参数
- 在页面加载完成之前,使用URL参数运行JavaScript
- 使用Javascript获取URL参数
- 如何在 JavaScript 中解析 URL 参数
- 主干.js将 url 参数传递给集合
- 谷歌应用脚本中的 UrlFetchApp.fetch 删除 url 参数
- 通过javascript将url参数传递到多个不同的href链接中
- 角度 1 - 获取当前 URL 参数
- 使用jquery获取url参数
- 在Javascript代码中插入URL参数
- Angular 2:HTTP Post Request,带有URL参数和正文类型参数
- 限制与AngularJS状态匹配的动态URL参数的最佳方式
- 如何根据URL参数生成包含JS内容的单个HTML文件