Mam tę aplikację Rails, która obsługuje index.html.erb przez ControllerController. W kątowym kontrolera, który obsługuje tę stronę, mam usługę $ zasobów dla Użytkownika
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'
])
a kontroler pobiera
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..
Myślę, że to dość powszechny scenariusz, ale dla tej strony potrzeba więcej niż jednej podróży do serwera. Zastanawiam się, czy istnieje sposób, aby Angular użył danych bootstrap, ponieważ zwróciły dane z akcji wywołanej w usłudze $ resource.
Zadbałem już o część danych ładowania początkowego, przypisując ją do zmiennej globalnej zwanej Gon z klejnotem Gon ruby. Wiem, że mógłbym po prostu zrobić $ scope.users = gon.users. Ale wtedy te modele użytkowników nie otrzymają takich udogodnień, jak $ scope.users [0]. $ Save()
Dziękujemy!
radziłbym kopanie do źródła dla modułu i/lub zbieranie poza zasobami obiekt pobrany przez usługę $ resource. Poza tym zawsze możesz po prostu dodać własną metodę składowania $, która pobiera usługę $ http i przesyła wszystko, co jest potrzebne w twoim przypadku. –