我有关于将param对象传递给$ resource get方法的查询。
在后端restful应用程序中我没有通过routeparam值。 这里是我的示例代码
点击html页面中的搜索按钮,它将移动到控制器,如myapp.js中所述
myapp.js var app = angular.module('myApp',['MyServices']);
app.config(['$ routeProvider',function($ routeProvider){
$routeProvider
.when('/employeesearch/:empID/:deptID', {
templateUrl : 'partials/result.html',
controller : SearchController
})
.otherwise({
redirectTo : '/defaultsearch'
});} ]);
在controller.js文件中执行console.log时,routeparams值正确显示
SearchController.js
function SearchController($ scope,$ routeParams,EmployeeSearch) $ scope.mydata = EmployeeSearch.getSearchResult($ routeParams.empID,$ routeParams.deptID);
}
myservices.js
angular.module('MyServices',['ngResource'])。
factory('EmployeeSearch', function($resource){
return $resource('rest/employees/:eID/:dID', {}, {
query: {method:'GET', params:{}, isArray:false},
getSearchResult:{method:'GET', params:{eID:'empID',dID:'deptID'}}
});
});
backend restful java class
@Path( “/雇员”) 公共类EmployeeSearchService {
@Path( “{的eID} / {DID}”)
@GET
@Produces(MediaType.APPLICATION_JSON)
public Employee searchmethod(@PathParam(“eID”)String empId,@ PathParam(“dID”)String deptId){
System.out.println("eid:"+empId);
System.out.println("did:"+deptId);
return new Employee(); }
点击restful url:http:localhost:9080 / MyProject / rest / employees / e12 / d12
- eid的值是'e12',并且确实是“d12”
但是在通过anugular击中 它将eid的值显示为“empID”,并将其作为“deptID”,
它显示myservices.js文件中提到的值
你可以帮我解决这个问题吗?我错误地给了什么?
参考网站:https://github.com/teunh/jfall2012/blob/master/demo/web/index.html
答案 0 :(得分:1)
params
用于默认值,因此当您在调用getSearchResult
(empID
和deptID
)时未提供这些内容时,会将其发送到服务器
factory('EmployeeSearch', function($resource){
return $resource('rest/employees/:eID/:dID', {}, {
query: {method:'GET', params:{}, isArray:false},
getSearchResult:{method:'GET', params:{eID:'empID',dID:'deptID'}}
});
});
要传递您在$routeParams
中捕获的值,您可以将控件中对象的值传递给控制器中的getSearchResult
,如下所示:
function SearchController($scope, $routeParams, EmployeeSearch) {
$scope.mydata = EmployeeSearch.getSearchResult({
eID: $routeParams.empID,
dID: $routeParams.deptID
});
}
请注意,对象的键必须与资源路径参数的名称相匹配(:eID
和:dID
)