2013-09-01 3 views
0

AngularJS는 백엔드 서버의 자바 스크립트에서 결과를 필요로한다는 것을 알고 있습니다.AngularJS Callbacks on Rails

예제의 현재 서버는 angular.callbacks._0({"key": "value"});을 javascript 헤더와 함께 반환합니다. Rails에서 같은 형식으로 반환하는 방법은 무엇입니까? 감사! 만큼 당신이 그것을 잘 작동합니다 JSON으로 응답 편안한 컨트롤러를 가지고

<!DOCTYPE html> 
<html ng-app="Simple"> 
<body> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.min.js"></script> 
<div ng-controller="SimpleController">  
    {{some_item.key}} 
</div> 
<script> 
angular.module('Simple', ['ngResource']); 
function SimpleController($scope, $resource) { 
    $scope.simple = $resource('http://echo.jsontest.com/key/value', 
     {callback:'JSON_CALLBACK'}, 
     {get:{method:'JSONP'}} 
    ); 
    $scope.some_item = $scope.simple.get(); 
    console.log($scope.some_item.key); 
} 
</script> 
</body> 
</html> 

답변

1

:

AngularJS와는 기본적

여기

내 작업 예는에 의해 해당 요청에서 http://echo.jsontest.com/key/value?callback=angular.callbacks._0 링크를 생성합니다.

class ArticlesController < ApplicationController 
    respond_to :json 

    def index 
    articles = Article.all 
    respond_with articles 
    end 

    def get 
    article = Article.find(params[:id]) 
    respond_with article 
    end 

    # etc. 
end 

당신은 속성을 제한 할 수 있습니다 respond_with article, include: {:id, :title, :description}

+0

를 사용하지만, JSONP는 자바 스크립트 함수로 콜백을 필요로 반환? – Gediminas

+1

JSONP를 사용할 필요가없는 Angular $ resource은 일반 JSON을 필요로합니다. 컨트롤러가 인덱스, 표시, 생성, 삭제 및 업데이트 (또는 필요한 서브셋)에 응답하는 한, 예제에서와 같이 $ resource를 사용할 수 있습니다. [$ resource] (http://docs.angularjs.org/api/ngResource.$resource)의 Angular 문서, 특히 예제를 살펴보십시오. 일반적으로 레일에 받침대를 만들면 각도와 함께 상자에서 작동합니다. 또한, 귀하의 예제에서, 나는'$ scope.some_item = $ scope.simple.get();'인수를 취할 것입니다 (컨트롤러에 표시되도록 라우트 될 것입니다). – taglia