2017-12-22 1 views
0

안녕하세요 저는 angularjs가있는 SPA 응용 프로그램을 가지고 있으며 템플릿 URL을 사용하여 구성 요소를 만드는 방법을 모릅니다.Angularjs가있는 ASP.NET SPA - 구성 요소 templateUrl

내 디렉토리 구조는 다음과 같습니다

SpaApp 
- Scripts 
    - App 
    - test.component.js 
- Controllers 
- Views 
    - Home 
    - test.component.cshtml 

test.component.js

app.component("appTest", { 
    templateUrl: 'test.component.cshtml', //what is the address here? 
    transclude: true, 
    controller: function AppTest() {} 
}) 

내가보기/홈/test.component.cshtml에 URL을 추가 시도하고 작동하지 않았다. 그런 다음 구성 요소 javascript와 동일한 폴더에 html 템플릿을 추가하려고 시도했지만 작동하지 않습니다. 내 문제는 어디에 있습니까? 구성 요소의 html 템플릿 주소는 무엇입니까? 고마워요

답변

1

면도기 뷰를 각도 템플릿으로 직접 사용할 수 없습니다. 면도날보기는 ASP.NET에 의해 컴파일되고 웹 서버에 의해 정적 파일로 직접 제공되지 않으며 각도 템플릿은 HTTP를 통해 비동기 적으로로드되거나 각도 템플릿 템플릿을 통해 검색됩니다.

두 가지 옵션이 있습니다.

  1. 각도 템플릿으로 면도기 (예 : .cshtml- 파일)를 사용하지 마십시오. 대신 .html 정규 파일을 사용하십시오.
  2. 정적 파일 대신 ASP.NET MVC 동작을 참조하십시오. 귀하의 경우 (기본 라우팅 구성을 가정 할 때) templateUrl/Home/Test이어야합니다.

첫 번째 옵션을 사용하고 ASP.NET MVC 면도기 뷰를 각도에서 완전히 분리하지 않는 것이 좋습니다.

+0

고맙습니다. 첫 번째 옵션을 사용해 보았습니다. js 파일과 같은 폴더에 html 파일이 있지만 작동하지 않습니다. 번들 구성에서이 html 파일 경로가 있어야합니까? – bluray

+0

html 템플릿의 경로는 응용 프로그램의 루트에서 상대 경로 여야합니다. 여기서 루트는 ASP.NET 응용 프로그램의 실행 디렉터리입니다. –

+0

예제를 보여줄 수 있습니까? – bluray

관련 문제