2012-09-17 2 views
10

나는 UsersController가 index.html.erb를 제공하는이 Rails 앱을 보유하고 있습니다. 해당 페이지를 처리하는 각 컨트롤러에서 나는 사용자

커피 스크립트

.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 $) 자원 서비스를 그리고 컨트롤러가 가져 오는

나는이 꽤 일반적인 시나리오라고 생각
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가 $ 리소스 서비스에서 호출 된 작업에서 반환 된 일부 부트 스트랩 데이터를 사용하는 방법이 있는지 궁금합니다.

저는 Gon ruby ​​gem을 사용하여 Gon이라는 글로벌 변수에 부트 스트랩 데이터 부분을 할당했습니다. 나는 단순히 $ scope.users = gon.users를 할 수 있다는 것을 알고 있습니다. 그러나이 사용자 모델은 $ scope.users [0]와 같은 명성을 얻지 못할 것입니다. $ save()

감사합니다!

+0

내가 자원 모듈 및/또는 떨어져 따기위한 소스로 파고 권합니다 삭제) 모든 $ 업데이트 (것 $ resource 서비스가 가져온 객체. 그 외에 $ http 서비스를 사용하는 자신 만의 $ save 메소드를 추가하여 자신의 경우에 필요한 모든 것을 제출할 수 있습니다. –

답변

11

, 정말 간단합니다!

예를 들어 변수가 아닌 _tasks 및 각도 $ 자원 모델 태스크에 모두 비 각도 모델이 있다고 가정하면 _tasks를 생성자 함수에 하나씩 전달해야합니다.

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

은 $ scope.tasks의 각 는 $() 메소드

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

User.query에서 왕복하는 것을 피하기를 원합니다. 맞습니까? 그것이 나오는 것에 따라 만일 그렇다면, 어떻게

컨트롤러의 내부 그리고
<html> 
<script type='text/javascript> 
    initialUsers = <%= User.someRubyMethod.to_json %> 
<script> 

같은 것에 대해

$scope.users = intitialUsers; 
+0

감사합니다. 네, 그게 지금하고있는 일이고 그게 문제입니다. 이제는 범위에서 사용자 모델을 사용하지만 각 사용자 모델에는 $ resource, $ save, $ delete가 $ resource과 함께 제공되지 않습니다. 그러나 나는 길을 찾고 있는데 곧 대답으로 게시 할 것입니다. –

+0

이것을 할 방법을 찾았습니까? – schultzter

관련 문제