2017-02-28 69 views
4

名控制器app.js

(function(){ 
'use strict'; 

angular 
    .module('app', ['ngRoute', 'ngCookies']) 
    .config(config) 

config.$inject = ['$routeProvider', '$locationProvider']; 
function config($routeProvider, $locationProvider){ 
    $routeProvider 
     .when('/', { 
      controller: 'HomeController', 
      templateUrl: 'home/home.html', 
      controllerAs: 'vm' 
     }) 
} 
})(); 

home.controller.js

(function() { 
'use strict'; 

angular 
    .module('app') 
    .controller('HomeController', HomeController); 

HomeController.$inject = ['UserService', '$rootScope']; 
function HomeController(UserService, $rootScope) { 

    $rootScope.bodylayout ='main_page_que'; 
    var vm = this; 
} 
})(); 

家.js文件

var app = angular.module('app', []); 
app.controller('RedCtrl', function($scope) { 
    $scope.OpenRed = function() { 
$scope.userRed = !$scope.userRed; 
$scope.userBlue = false; 
    } 
    $scope.HideRed = function() { 
$scope.userRed = false; 
    } 
    $scope.OpenBlue = function() { 
$scope.userBlue = !$scope.userBlue; 
$scope.userRed = false; 
    }; 
    $scope.HideBlue = function() { 
$scope.userBlue = false; 
    }; 
}); 

home.html的

<div ng-controller="RedCtrl"> 
    <a href="#" ng-click="OpenRed()" hide-red="HideRed()">Show Red</a> 
    <div hide-red="HideRed()" class="loginBox" ng-show="userRed"></div> 
    <a href="#" ng-click="OpenBlue()" hide-blue="HideBlue()">Show Blue</a> 
    <div hide-blue="HideBlue()" class="loginBoxBlue" ng-show="userBlue"></div> 
</div> 

的Index.html

<html lang="pl" ng-app="app"> 
<body class="{{bodylayout}}"> 
<div class="content"> 
    <div ng-view style="margin:auto"></div> 
</div> 
<script src="//code.jquery.com/jquery-3.1.1.min.js"></script> 
<script src="//code.angularjs.org/1.6.0/angular.min.js"></script> 
<script src="//code.angularjs.org/1.6.0/angular-route.min.js"></script> 
<script src="//code.angularjs.org/1.6.0/angular-cookies.min.js"></script> 
<script src="home.js"></script> 
<script src="app.js"></script> 
<script src="authentication.service.js"></script> 
<script src="flash.service.js"></script> 
<script src="user.service.local-storage.js"></script> 
<script src="home/home.controller.js"></script> 
</body> 
</html> 

嘿,這是從應用程序的一部分,當我用ngRoute和動態添加home.html,但我認爲我有錯app.js或home.controller.js當我添加外部文件home.js(當時是ng-controller=""RedCtrl。我收到錯誤[$controller:ctrlreg] RedCtrl is not register。你有什麼想法嗎?我是Angular的新手,我認爲主要原因是缺乏我的知識。

+0

聲明你的NG-應用 – Roy

+0

我宣佈index.html的NG-應用程序,它沒有我在這個問題 –

+0

見插入[AngularJS錯誤參考 - $控制器:ctrlreg(HTTPS: //docs.angularjs.org/error/$controller/ctrlreg) – georgeawg

回答

8

您將要覆蓋在home.jsapp模塊從而得到錯誤

使用

var app = angular.module('app'); //Get previously defined module 

,而不是

var app = angular.module('app', []); //It declares new module 

您還需要改變的JavaScript文件的順序

<script src="app.js"></script> 
<script src="home.js"></script> 
+0

但我在Index.html –

+0

中聲明ng-app =「app」請參閱'angular.module('app',['ngRoute','ngCookies'] )'in _app.js_ – Satpal

+0

謝謝,現在沒關係,我很遺憾用覆蓋應用程序來犯這個錯誤 –

相關問題