当前位置: 首页 > 面试题库 >

如何在Angular.js中的$ resource服务获取数据时对其进行引导

叶景龙
2023-03-14
问题内容

我有这个Rails应用程序,由UsersController提供index.html.erb。在处理该页面的角度控制器中,我为用户提供了$
resource服务

.factory('User', ['$resource', ($resource) ->
  $resource 'api/users/:user_id/:action', {authenticity_token:app.csrf},
    query:
      method: 'GET'
      isArray: yes
    new:
      method: 'GET'
      params:
        user_id: 'new'
    update:
      method: 'PUT'
])

然后控制器获取

window.app = angular.module("app", ['userServices'])
.config(["$routeProvider", ($routeProvider) ->
  $routeProvider
  .when "/users",
    templateUrl: "assets/templates/users/index.html"
    controller: UserCtrl

  .otherwise redirectTo: "/users"
])

# users Controllers
UserCtrl = ($scope, User) ->
  User.query (r) ->
    $scope.users = r
    # code..

我认为这是一个很常见的情况,但是很显然,仅此页面需要花费不止一次的时间访问服务器。我想知道Angular是否有办法使用一些引导数据,因为它们是从$
resource服务中调用的操作返回的数据。

我已经通过将引导数据部分分配给带有Gon红宝石gem的名为Gon的全局变量来解决这个问题。我知道我可以简单地执行$ scope.users =
gon.users。但是,这些用户模型将不会像$ scope.users [0]。$ save()这样的细节。

谢谢!


问题答案:

事实证明,这真的很简单!

例如,假设您将所有非角度模型都包含在变量_tasks和角度$
resource模型Task中,那么您要做的就是将_tasks逐个传递给构造函数Function Task,如下所示:

$scope.tasks = (new Task(task) for task in _tasks)

那么每个$ scope.tasks将具有所有这些$ update(),$ delete()方法

$scope.tasks[0].$update({due_at: new Date})


 类似资料:
  • 问题内容: 我有一个Angular服务/提供程序,将json数据提供给我的控制器,效果很好: 但是 我还需要将json数据从另一个文件提供给同一控制器。 在哪里可以找到如何编写将两个文件都提供给控制器的服务? 问题答案: 您可以更新服务以返回资源的哈希,而不是单个哈希: 您将可以使用它,并在函数名末尾添加和,并且必须将其注入到控制器中,然后再将服务注入到控制器本身中。

  • 问题内容: 我试图使用Angular从远程WS以Json格式获取数据,但遇到了一些麻烦。数据正确地来自Web服务,但是我不能在控制器内部使用它。这是为什么?角度代码: HTML: 问题答案: 您应该将$ http.get放入控制器中。 而且,Web服务返回的对象不是数组。因此,您的ng-repeat应该是这样的: 这是一个工作示例:

  • 我得到了错误: 06-24 10:41:36.497 173 16-17316/com.example.waseem.geolocation:location_service e/androidruntime:致命异常:main process:com.example.waseem.geolocation:location_service,pid:17316 java.lang.runtimeEx

  • 问题内容: 我在index.xhtml上有数据打包 我的豆子: 我的问题是,即使单击不同的编辑按钮,我也总是在服务器日志中获得相同的索引。想象有一个提供给数据表的集合。我没有在bean中显示出来。 如果我将范围从ViewScope更改为RequestScope,则可以正常工作。可能是什么问题?提前致谢 :) 编辑: 问题答案: 您已经将组件绑定到了bean。您需要做的只是: 在也这里不需要。有关更

  • 问题内容: 我试图显示一个包含大量元素的表。我想对表进行分页并仅加载当前页面上显示的元素。现在,json加载了。 我在这里读到,最好在json标头中传递分页信息(currentPage,pagesCount和elementsCount)。 我如何从angular访问json头中的那些信息? 这是基本的js结构: 问题答案: 根据AngularJS $ resource文档,应该可以这样做:

  • 所以我使用executorservice创建了一个线程池。 我试图访问线程池队列中的任务数。我看到没有办法得到它。我知道有一些方法来获取线程池执行器中的队列大小,但是我如何使用执行器服务对象来实现这一点。 就像我说的,如果我创建了一个像这样的线程池执行器,我可以得到队列信息 我知道我可以使用tpExecutor。队列size()获取线程池队列中的任务数。但目前我已经使用Executor服务声明了我