2015-01-06 3 views
2

각도 컨트롤러 $ scope.abc에 변수가 있습니다.각도 변수 초기화

나는 돛을 백엔드로 가지고있다.

$ scope.abc의 초기 값은 페이지 생성시 백엔드에서 결정할 수 있습니다. 페이지가 사용자에게 표시되면 $ scope.abc가 사용자에 의해 변경되거나 변경되지 않을 수 있습니다.

완전한 정적 페이지를 생성하기 위해 백엔드를 가질 수 있으며 $ scope.abc의 초기 값에 대한 각도 쿼리에 백엔드를 사용할 수 있습니다. 페이지 생성시 초기 값을 결정할 수 있으며 페이지의 일부로 사용해야하므로 필요하지 않다고 생각합니다.

질문 : 웹 페이지 생성시 $ scope.abc를 초기화하는 방법은 무엇입니까? res.view ("", data)와 비슷한 각도 js 파일에 데이터를 제공 할 수있는 방법이 있습니까?

+0

각도 컨트롤러에서 $ http를 만들고 $ scope.abc를 할당하십시오. –

+0

$ scope.abc를 초기화하기 위해 백엔드에 두 번째 http 요청을하려면 $ http angular가 필요합니까? – windchime

+0

이미 데이터가있는 경우 다시 요청할 필요가 없습니다. – dfsq

답변

3

여기에는 많은 옵션이 없습니다. 하나 이상의 Ajax 요청을 발행하고 데이터를로드 할 수 있습니다. 그러나 인덱스 페이지를로드하는 동안 이미 데이터를 사용할 수 있다면 이상적이지 않습니다. 이 경우 추가 스크립트 태그에 삽입하여 거기에서 액세스 할 수 있습니다.

<script> 
    // Make sure data is JSON encoded. 
    window.appConfig = <%= data %>; 
</script> 
<script src="angular.js"></script> 
<script src="app.js"></script> 

그리고 나는 거기에 데이터를 저장하는 응용 프로그램에 일정한 서비스를 설정합니다 :

angular.module('app').constant('appConfig', {data: window.appConfig}); 

더 많은 각도 방법으로 나중에 사용할 수있는이 방법을 예를 들어 :

angular.module('app').controller(function($scope, appConfig) { 
    $scope.config = appConfig.data.userId; 
}); 

전역 변수 appConfig이 있는지 염려되는 경우 상수가 이미 설정된 경우 앱 실행 블록에서 제거 할 수 있습니다.