Javascript 如何在$http中传递URL参数
我正在将服务器端CRUD应用程序转换为Angular.js,但有一个小问题 我使用Javascript 如何在$http中传递URL参数,javascript,angularjs,Javascript,Angularjs,我正在将服务器端CRUD应用程序转换为Angular.js,但有一个小问题 我使用$http获取数据,并通过ng repeat显示所有数据。我想让用户能够单击和指定项目,并将其重定向到资源 那么,如何将URL参数动态传递给$httpget调用呢 下面是我如何建立到资源的链接(car.id=3) 因此,我有兴趣以有角度的方式绑定URL。上述解决方案可行,但感觉非常像黑客。我对Angular不太熟悉,所以我现在喜欢使用默认值。我可能会考虑REST或NG资源在稍后的时间…虽然 上述解决方案可行,但感觉
$http
获取数据,并通过ng repeat
显示所有数据。我想让用户能够单击和指定项目,并将其重定向到资源
那么,如何将URL参数动态传递给$http
get调用呢
下面是我如何建立到资源的链接(car.id=3)
因此,我有兴趣以有角度的方式绑定URL。上述解决方案可行,但感觉非常像黑客。我对Angular不太熟悉,所以我现在喜欢使用默认值。我可能会考虑REST或NG资源在稍后的时间…虽然
上述解决方案可行,但感觉非常像黑客
我不认为这是黑客或什么乱七八糟的东西
我会在controller中生成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>
顺便说一句,我建议您使用一些加载器,因为我们从promise(又名async)生成的URL链接会有延迟
演示在您的app.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', 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
});
}]);
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。希望有帮助。谢谢,我会试试你的建议!所以url:$location.$$url方法是通常使用的方法。不知何故,我认为有另一种绑定url的方法。
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
});
}]);