Angularjs:如何为主模块和主控制器创建单独的文件

时间:2014-03-20 09:08:49

标签: angularjs file module controller modularity

我遇到与how-to-create-separate-angularjs-controller-files相同的问题,但似乎有点复杂:我想将模块声明和“MAIN-Controller”分离成单独的文件,比如app.js和appCtrl.js。

app.js包含:

angular.module('app', []);

appCtrl.js包含:

angular.module('app').controller('appCtrl', function($scope){
    $scope.model = { MyValue : "coucou" };
}]);

以下代码没问题:

<html>
<head>
    <script src="bower_components/angular/angular.js"></script>
    <script src="scripts/app.js"/>
    <script src="scripts/ctrl/appCtrl.js"/>
</head>
<body ng-app="app" ng-controller="appCtrl">
    My value = {{model.MyValue}}

</body>
</html>

但是下面的代码不行:

<html>
<head>
</head>
<body ng-app="app" ng-controller="appCtrl">
    My value = {{model.MyValue}}

    <script src="bower_components/angular/angular.js"></script>
    <script src="scripts/app.js"/>
    <script src="scripts/ctrl/appCtrl.js"/>
</body>
</html>

Angular抛出错误:“[ng:areq] Argument'appCtrl'不是函数,未定义”不幸的是,后者是包含角度和模块的推荐方法......

这个问题有解决方案吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

app.js

var app = angular.module('app', []);

appCtrl.js:

app.controller('appCtrl', function($scope){
$scope.model = { MyValue : "coucou" };

}]);

答案 1 :(得分:0)

我会使用角度模块/注入功能:

app.js包含:

angular.module('app', ['app.controllers']);

appCtrl.js包含:

angular.module('app.controllers', [])
    .controller('appCtrl', function($scope){
        $scope.model = { MyValue : "coucou" };
}]);