2015-11-05 62 views
0

我在嘗試使用ui-view時遇到AngularJS中的問題。 如果我在完整頁面中聲明腳本,控制器將保持可見狀態。 如果我需要使用我創建的每個控制器執行此操作,我將在索引頁面內部有很多控制器,而不是頁面內的單個控制器。 在Asp.net MVC中,我可以使用RenderSection函數。 有我的代碼:在Asp.Net MVC中,AngularJS中有類似RenderSection的「方法」嗎?

的Index.html

<html lang="en"> 
<head> 
    <script src="Scripts/angular.min.js"></script> 
    <script src="Scripts/angular-ui-router.min.js"></script> 
    <script src="Scripts/venus.js"></script> 
    <script src="Scripts/controllers/conteudoController.js"></script> 
</head> 
<body ng-app="VenusApp"> 
    <div class="container"> 
     <div class="row"> 
      <div class="col-md-3"> 
       <p class="lead">Shop Name</p> 
       <div class="list-group"> 
        <a href="#" class="list-group-item">Category 1</a> 
        <a href="#" class="list-group-item">Category 2</a> 
        <a href="#" class="list-group-item">Category 3</a> 
       </div> 
      </div> 
      <div class="col-md-9" ui-view=""> 
      </div> 
     </div> 
    </div> 
</body> 
</html> 

和我的第二頁僅僅是一個HTML表格。

對不起,任何問題,但這是我的第一篇文章在stackoverflow。

+0

是的,有。它被稱爲指令性轉換。 – pixelbits

回答

0

它看起來像你的問題是,即使你不需要其他控制器,你仍然需要注入主index.html之前,該控制器甚至使用正確?

在Angularjs中,您可以使用$ocLazyLoad模塊,該模塊僅允許您在需要時加載控制器。

當您在angularjs config中定義路由配置時,您將配置哪個控制器是需要的。

這是如何做到的。

$stateProvider 
      .state('login', { 
       url: '/login', 
       controller: 'LoginCtrl', 
       templateUrl: 'views/login.html', 
       resolve: { 
        loadMyFiles: function ($ocLazyLoad) { 
         return $ocLazyLoad.load({ 
          name: 'Myapp', 
          files: [ 
          'scripts/controller/login.js' 
          ] 
         }) 
        } 
       } 
      }).state('reset', { 
       url: '/reset/token/:token', 
       controller: 'ResetCtrl', 
       templateUrl: 'views/reset.html', 
       resolve: { 
        loadMyFiles: function ($ocLazyLoad) { 
         return $ocLazyLoad.load({ 
          name: 'Myapp', 
          files: [ 
          'scripts/controller/reset.js' 
          ] 
         }) 
        } 
       } 
      }).state('verify', { 
       url: '/verify', 
       controller: 'VerifyCtrl', 
       templateUrl: 'views/verify.html', 
       resolve: { 
        loadMyFiles: function ($ocLazyLoad) { 
         return $ocLazyLoad.load({ 
          name: 'Myapp', 
          files: [ 
          'scripts/controller/verify.js' 
          ] 
         }) 
        } 
       } 
      }) 

不僅控制器JS,你甚至可以延遲加載css.This將幫助您減少所有index.html中加載JS噸的和CSS。

注:我沒有使用NG-路線,而不是我使用的UI-router.Above代碼UI路由器+ $ ocLazyLoad

相關問題