我有这个$ http电话:
$http({
method: 'GET',
url: '/api/PhotoSubmit/GetCategories',
accept: 'application/json'
})
.success(function (result) {
$scope.categories = result;
});
...需要将参数发送到此HTTPGET方法:
[Route("api/PhotoSubmit/GetCategories/{id}")]
[HttpGet]
public object GetCategories(int id)
{
return FileServices.GetCategoriesForUser().Select(c => new { Id = c.Id, Name = c.Name });
}
路由工作正常,我只是不确定如何通过angular / javascript将其发送到控制器(或者...如何在$ http调用中看看路由调用
这是网址:
http://localhost:63203/Index.html#/photosubmit/1
答案 0 :(得分:1)
我确定$ http类似,但我在工厂使用$ resource来点击我的网络API端点。
在 services.js 中,我有:
var app = angular.module('app.service', ['ngResource']);
app.factory('api', ['$resource', function ($resource) {
'use strict';
return {
Categories: $resource('/api/PhotoSubmit/GetCategories/:id', {id: '@id'})
};
}]);
然后在我的控制器中,我用
调用它$scope.categories = api.Categories.get({id:"1"});
如果你真的想开始玩乐,你可以在结果使用$ promise后等待并使用数据。
api.Categories.get({id:"1"})
.$promise
.then(function (results){
$scope.categories = results;
});
的更新的
为了将变量放入$ routeParams,我做了以下操作(请记住,这是我的第一个有角度的应用程序,所以有更好的方法来编写代码。)
在我的 app.config 中,我有以下代码来创建一个id参数:
$routeProvider
...
.when('photosubmit/:id', {
templateUrl: "photo.html",
controller: "PhotoController"
})
.otherwise({ redirectTo: '/' });
然后,我在控制器$scope.$routeParams = $routeParams;
中得到了参数
我不得不在顶部这样做,所以它不会丢失或未定义。
接下来,您可以使用$scope.$routeParams.id
答案 1 :(得分:0)
Id可以通过url本身传递。
url: '/api/PhotoSubmit/GetCategories/1',
或者你也可以用params传递它。
$http({
url: '/api/PhotoSubmit/GetCategories',
method: "GET",
params: {id: 1}
});