2013-06-25 30 views
5

Trong Backbone.js, người ta có thể nhanh chóng một mô hình với dữ liệu JSON tồn tại trước đó bằng cách sử dụngKhởi tạo một thể hiện đối tượng nguồn góc mà không gọi máy chủ

var user = new Backbone.Model({ name: "John Doe", age: 30 }); 

Và sau đó thực hiện cập nhật với một cuộc gọi duy nhất

user.save({ age: 31 }, { success: successCallback, error: errorCallback }); 

Điều này có ích trong tất cả các loại kịch bản, chẳng hạn như khi dữ liệu đó đã có sẵn trên máy khách thông qua bộ nhớ đệm hoặc mẫu được điền trước (như sử dụng <%= raw @user.to_json %> trong các mẫu erb đường ray).

Tôi tò mò muốn biết điều này được thực hiện như thế nào khi sử dụng $resource với Angular.js. Ngay bây giờ, tôi có một tình huống mà dữ liệu của tôi được lưu trữ trên máy khách trước khi $resource được tạo ra, và tôi muốn cập nhật nó mà không làm thêm GET cuộc gọi đến cư trú trong các đối tượng:

app.factory('User', ['$resource', function($resource) { 
    return $resource('/users/:user_id.json', { user_id: '@id' }, { 
     get: { method: 'GET' }, 
     save: { method: 'PUT' }, 
     create: { method: 'POST' }, 
     destroy: { method: 'DELETE' } 
    }); 
}]); 

Và đâu đó trong điều khiển của tôi, tôi muốn chỉ cần cập nhật một người sử dụng hiện tại mà không lấy nó từ máy chủ:

app.controller('UsersController', ['User', function(User) { 
    // somehow initialize a user from an existing 
    // object, say { name: "John Doe", age: 30 } 
    user.age = 31 
    user.$save() 

    // instead of doing this 
    User.get({ user_id: 100 }, function(user, respHeaders) { 
     user.age = 31 
     user.$save() 
    }); 
}]); 

tôi có thể vẫn còn trong suy nghĩ Backbone, nhưng tôi thực sự tò mò nếu tôi tiếp cận tất cả điều này sai . Cảm ơn.

Trả lời

12

$ nguồn cung cấp cho các tùy chọn để tạo một người dùng mới như bạn làm với bất kỳ đối tượng:

var user = new User({name : 'John Doe', age: 30}); 
user.age = 32; 
user.$save(); 

Resource Docs

+0

Wow, nhỡ mà một. Cảm ơn! – sa125

+0

Có thể khởi tạo mảng tài nguyên người dùng không? (không sử dụng bất kỳ vòng lặp nào để tạo từng cá thể tài nguyên) – Shakti

Các vấn đề liên quan