2016-07-27 4 views
0

내가 게으른로드 각도 자바 스크립트/HTML 파일에 ocLazyLoad 라이브러리를 사용하여이 코드 조각처럼 내 모듈에 주입하고 함께 AngularJS와에서 HTML 렌더링 면도칼 얻는 방법 :ngRoute

$routeProvider.when('/Home/Index', { 
     templateUrl: '/app/Index.html', 
     controller: 'IndexController', 
     resolve: { 
      deps: [ 
       '$ocLazyLoad', function ($ocLazyLoad) { 
        return $ocLazyLoad.load({}, { 
         name: 'mix', 
         files: [ 
          '/app/IndexController.js' 
         ] 
        }); 
       } 
      ] 
     } 
    }); 

내가 정적 얻을이 방법을 파일 시스템에서 html 파일. 그러나 내가 원하는 것은 templateUrl : '/ Home/Index'로 설정되어 홈 컨트롤러의 Index 액션 메소드가 실행되고 면도기가 지정된 .cshtml 페이지를 렌더링 한 다음 각도 지시어로 HTML을 반환합니다.

내가 원한다. 면도기보기 : 서버에서

<p> 
    @foreach (var item in new List<int> { 1, 2, 3, 4, 5 }) 
    { 
     @item 
    } 
</p> 

<div ng-controller="IndexController as vm"> 
    <p>{{vm.text}}</p> 
    <p>{{3 + 3}}</p> 
</div> 

응답 :이 HTML과 함께

<p>12345</p> 
<div ng-controller="IndexController as vm"> 
    <p>{{vm.text}}</p> 
    <p>{{3 + 3}}</p> 
</div> 

, 게으른로드 IndexController.js 그 일을 할 것입니다 다음 각.

그렇게 할 수 있습니까?

답변

0

예, 가능합니다. 기본 사항을 기억하면됩니다. Angular는 노출하지 않는 한 서버 측에서 아무 것도 모릅니다.

내부적으로
$routeProvider.when('/ng-Home/Index', { //It can't be the same as the Action URL since it won't work the way you want it to. 
    templateUrl: '/Home/Index', //Add the html of your static page into the razor view. 
    controller: 'IndexController' 
    } 
}); 

(JSON 또는 XML 반대 등의 HTML 응답) 일반 HTML 파일이나 HTML 중 하나가 서버로부터 출력되는 서버 측에서 호출 각도. Angular는 파일 또는 응답 HTML인지 상관하지 않습니다. 라우팅은 단순히 응답 HTML을 가져 와서 출력합니다.

일반적으로 이것은 면도기가 생성 한 모든 HTML이 모델을 처리하는 각도 방식과 호환되지 않으므로 지저분해질 수 있습니다. 하지만 ASP.NET에서 번들 및 축소 기능을 사용하는 것과 같은 편리한 기능을 얻을 수 있습니다. 또는 HTML에 부분 뷰를 직접 추가 할 수도 있습니다. 당신의 면도기보기에서

, 당신은 JS는 다음과 같은 방법을 파일을 추가 할 수 있습니다

@Scripts.Render("~/Path/To/Script") 

는 희망이 도움이!

관련 문제