gpt4 book ai didi

angularjs - 如何在 Angular.js 中的 $resource 服务获取数据时引导数据

转载 作者:行者123 更新时间:2023-12-03 01:59:18 25 4
gpt4 key购买 nike

我有这个Rails 应用程序,它通过UsersController 提供index.html.erb。在处理该页面的 Angular Controller 中,我为用户提供了一个 $resource 服务

CoffeeScript

.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'
])

Controller 获取

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 ruby​​ gem 将引导数据部分分配给名为 Gon 的全局变量来处理它。我知道我可以简单地执行 $scope.users = gon.users。但是这些用户模型将无法获得像 $scope.users[0].$save() 这样的细节

谢谢!

最佳答案

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

例如,假设您将所有非 Angular 模型都放在变量 _tasks 和 Angular $resource 模型 Task 中,您所需要做的就是将 _tasks 一一传递到构造函数 Task 中,如下所示:

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

然后每个 $scope.tasks 将拥有所有这些 $update()、$delete() 方法

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

关于angularjs - 如何在 Angular.js 中的 $resource 服务获取数据时引导数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com