2016-07-01 2 views
1

웹 응용 프로그램에 MVC와 Angular2를 사용하고 있습니다. My Controller에서 Angular2가 시작되는 인덱스 페이지로 값을 전달해야합니다. 이제 Typescript를 사용하여 각도에서 View bag의 값을 읽을 필요가 있습니다. 내가 할 수 있을까? 나는 많은 것을 검색했지만 어떤 정보도 얻지 못했습니다!Angular2/TypeScript에서 Viewbag에서 ​​값을 읽는 방법은 무엇입니까?

+1

이 답변을 관심을 가질 수 있습니다 http://stackoverflow.com/questions/37337185/passing-asp-net-server-parameters-to-angular-2-app/37384405#37384405 – yurzui

답변

2

기본적으로 두 가지 옵션이 있습니다.

옵션 # 1 : 요청에게 필요한 구성 데이터를 가져올 것이다 루트 구성 요소에서

만들기 GET 요청 (서비스 사용) GET.

옵션 # 2 : 삽입 JSON 페이로드는 방문 페이지에 직접 JSON 데이터를 포함 할 수 있습니다이 옵션을

. Angular 앱에서이 데이터에 액세스하려면 전역 변수로 저장해야합니다. 그런 다음 응용 프로그램에서 데이터 객체를 검색하는 것이 매우 간단합니다. 유일한 경우, 에러가 발생하기 쉽기 때문에이 경우 전역 변수를 직접 읽지 않아야합니다. AppConfig 간단한 서비스로 전역 액세스를 추상화하는 것이 좋습니다. 이점은 나중에 데이터 소스를 변경할 수 있다는 것입니다 (위의 GET 요청 옵션으로 전환하려는 경우).

그래서 첫 번째 단계는 아마도 다음과 같이 HTML로 JSON을 작성하는 것입니다 :

<script> 
    var __appConfig = JSON.parse('@Html.Raw(appConfig)'); 
</script> 

내가하지 C#을 전문가는 아니지만이 최적이 아닌 될 수 있도록.

export class AppConfig { 
    private _config = window.__appConfig 

    getConfig() { 
    return this._config 
    } 
} 

하나를 선택 :

그리고 도우미 서비스는 다음과 같을 수 있을까? Angular 2 앱에 전달하려는 데이터의 종류에 따라 달라집니다. 큰 JSON 페이로드가있는 많은 경우에 GET 요청 방식을 사용하는 것이 좋습니다. 반면에 간단한 변수 나 작은 데이터 덩어리의 경우 데이터를 HTML에 직접 포함하는 것을 선호합니다. 또한 AJAX 요청을 한 번 더 저장하지 않아도됩니다.

관련 문제