我有一个由 angularjs Controller 渲染的页面,它显示了页面加载时用户的详细信息。 这个列表是由Spring的 Controller 给出的:
@RequestMapping(value = "/contact/{id}", method = RequestMethod.GET, headers = "Accept=application/json")
public User getContact(@PathVariable String id) {
User user = userService.findById(id);
return user;
}
这是由细节 Controller 内的 angularjs 请求的:
$http.get(urlBase+'/contact/'+$routeParams.userid).success(function(data) {
$scope.user = data;
});
现在我还想在同一页面上显示其他详细信息,例如该页面上的访问者是否是该用户的 friend 。应在页面加载时加载此信息(与检索用户的详细信息相同)
我是否应该使用单独的 get 方法来进行这种检查并将其放在第一个 get 方法下?例如
@RequestMapping(value = "/isFriends/{userId}", method = RequestMethod.GET, headers = "Accept=application/json")
@ResponseBody
public RETURNWHAT loadProfile(@PathVariable String userId, RequestParameter request) {
/*
* Do some checks whether a user is friends with the user on the page.
*/
request.setParameter("isFriends", true); //Perhaps not a good idea to use set parameter to retrieve this inside the angularjs' controller?
}
其他获取:
$http.get(urlBase+'/isFriends/' + $routeParams.userid).success(function(data) {
});
或者有更好的方法来实现这一点吗?
我只想调用 1 个 get 方法来从 Controller 中的 1 个方法检索此信息。但后来我假设 Controller 必须发回包含所有详细信息的 map 。
编辑:
我相信在 Spring 的 Controller 中使用 1 个方法,该方法返回 Map<String, Object>
AngularJS 中的 1 get 函数应该是最好的选择,我是对的吗?
最佳答案
实际上是http请求数和从服务器发回的数据量之间的权衡,因此对于您的用户案例,它只是您想要的一个字段,搭载现有响应比发出两个请求更好。
关于java - AngularJS 加载页面,其中包含来自 Controller 的不相关数据(2 个 GETS 还是只有 1 个?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29856986/