Web Api 2 -如何从$http调用发送属性到控制器(属性路由)
Web Api 2 - How to send attribute from $http call to controller (attribute routing)
我有这个$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调用
中,路由调用应该是什么样子?这是URL:
http://localhost:63203/Index.html#/photosubmit/1
我确信$http是类似的,但我在工厂中使用$resource来命中我的web 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中,我做了以下操作(记住,这是我的第一个angular应用,所以有更好的方法来编写它)
在我的应用程序。配置,我有以下代码来创建id参数:
$routeProvider
...
.when('photosubmit/:id', {
templateUrl: "photo.html",
controller: "PhotoController"
})
.otherwise({ redirectTo: '/' });
然后,我得到控制器$scope.$routeParams = $routeParams;
中的参数
我必须在顶部这样做,这样它就不会丢失或未定义。
$scope.$routeParams.id
Id可以通过url本身传递。
url: '/api/PhotoSubmit/GetCategories/1',
或者你也可以在参数中传递。
$http({
url: '/api/PhotoSubmit/GetCategories',
method: "GET",
params: {id: 1}
});
相关文章:
- 未激发路由的控制器属性上的观察者
- 当使用控制器作为语法时,如何从父指令继承属性
- 将指令绑定到控制器属性
- Ember:当子控制器同时观察到父控制器触发请求的相同属性时
- Ember访问公共路由/控制器mxiin中的控制器属性
- 从控制器访问mixin属性
- 如何从jQuery设置控制器或全局变量的属性
- 通过emberJS中的控制器修改组件的属性
- 设置AngularJS控制器属性不能是使用Coffeescript的最后一行
- 角度控制器不绑定服务对象属性 ng-repeat
- 在控制器中访问 ng-重复$first属性
- 无权访问我的控制器 Angular 中的属性.js 1.3
- Ember.js数组控制器计算属性的复选框
- 控制器的属性不会动态更改
- 角度指令和属性Don'在控制器内创建和设置时无法工作
- 每次属性更改时,角度控制器都会初始化
- 通过 AngularJS 中的 ngClick 将整个对象或仅属性从视图传递到控制器
- 无法使用typescript访问angular中另一个控制器中声明的$rootscope属性
- 角度:覆盖'@'链接或控制器中隔离作用域中的属性
- 扩展或定义新的dat.gui属性控制器的最佳方法