我有这个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})