java - AngularJS 加载页面,其中包含来自 Controller 的不相关数据(2 个 GETS 还是只有 1 个?)

标签 java javascript angularjs spring spring-mvc

我有一个由 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/

相关文章:

java - 为什么我们不能增加 asList() 返回的 ArrayList 对象的大小?

java - 启动我的 Bukkit 插件时出现 NullPointerException

javascript - jquery 对话框 : drag dialog at any point

javascript - 基于另一个 Backbone 模型初始化 Backbone 模型

javascript - 打印应用了 CSS 样式的 Angular 网页

javascript - Angularjs ng-required 在关闭模型后未清除通知

javascript - 如何通过请求映射修复 thymeleaf 错误?

java - 在可观察链中应用调度器两次(使用 compose)

javascript - "undefined"参数在函数定义中表示什么

angularjs - Grunt.js 用于 Angular.js 依赖注入(inject)管理