2016-11-01 10 views
0

コントローラをネストしようとしていて、次のエラーが表示されます。エラー:[ng:areq]引数 'MainController'が関数ではありません。私は検索し、同様の質問がありますが、回答は私の場合には当てはまらなかったということがわかった。角度ネストされたコントローラエラー

_Layout.cshtml

<body ng-controller="MainController" layout="column"> 
<div> 
    <md-content flex > 
     <div> 
      <md-toolbar class="md-accent"> 
       <div class="md-toolbar-tools"> 
       </div> 
      </md-toolbar> 
     </div> 
     <md-content flex layout-align="center center"> 
      <md-sidenav md-component-id="left" class="md-sidenav-left md-whiteframe-z2" layout="column" id="sideNav"> 
       <section layout="column"> 
        <md-button class="md-raised md-primary"> 
         @Html.ActionLink("Admin", "Index", "Admin/Index", new { area = "" }, new { @class = "myButtons" }) 
        </md-button> 
       </section> 
      </md-sidenav> 
      <md-button class="md-raised md-primary" ng-click="clickSide('left')">Show menu</md-button> 
      <md-content class="AppContainer"> 
       @RenderBody() 
      </md-content> 
     </md-content> 
     <footer> 
      <div layout="row" layout-align="center center"> 
       <h2>My Awesome Footer &copy; @DateTime.Now.Year</h2> 
      </div> 
     </footer> 
    </md-content> 
</div> 
</body> 

app.jsあなたはAdminControllerに再びモジュールを宣言する必要はありません

angular.module('MyApp', ['ngMaterial', 'ngMessages']) 
.controller('AdminController', function ($scope, $http, $filter, $mdDialog) { 
$scope.test = "Hello"; 

}); 

答えて

4

(メインコントローラ)

var MyApp = angular.module('MyApp', ['ngMaterial', 'ngMessages', 'ngRoute']); 

MyApp.controller('MainController', function ($scope,$rootScope, $http, $filter, $mdDialog, $timeout, $mdSidenav, $window, $location) { 
$scope.clickSide = function (dir) { 
    $mdSidenav(dir).toggle(); 
}; 

}); 

AdminController.js 、次のように変更します。

MyApp.controller('AdminController', function ($scope, $http, $filter, $mdDialog) { 
$scope.test = "Hello";  
}); 
関連する問題