我是Angular的新手,需要一些帮助。
我试图设置一个基本的目录结构,其中我有单独的JS文件中的模块和控制器。但是,当我这样做时,我会收到帖子标题中所述的错误。
该模块如下所示:
var myApp = angular.module('myApp', ['ngRoute']);
这样的控制器:
myApp.controller('mainController', function ($scope) {
$scope.message = 'Test message';
});
路线:
myApp.config(function ($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl: 'components/home/home.html',
controller: 'mainController'
})
// route for the about page
.when('/about', {
templateUrl: 'components/about/about.html',
controller: 'aboutController'
})
// route for the contact page
.when('/contact', {
templateUrl: 'components/contact/contact.html',
controller: 'contactController'
});
});
然后在我的HTML中使用ng-app =" myApp"和ng-controller =" mainController"并试图写出:{{message}}。但它没有用。
如果我将所有角度代码放在同一个JS文件中,那么它可以工作。但不是在他们分开的时候。
非常感谢帮助和解释!
答案 0 :(得分:0)
正如评论所暗示的那样,此错误通常会导致我对包含mainController的文件缺少引用。您的index.html应包含对javascript文件的脚本引用。以下是我的一个小应用程序的示例:
<!-- Custom scripts -->
<script src="/app.js"></script>
<!-- Controllers -->
<script src="/login/loginCtrl.js"></script>
<script src="/home/homeCtrl.js"></script>
<!-- Directives -->
<script src="/common/directives/pageHeader/pageHeader.directive.js"></script>
<script src="/common/directives/footerGeneric/footerGeneric.directive.js"></script>
<script src="/common/directives/queryBuilder/queryBuilder.directive.js"></script>
<script src="/common/directives/scroll/infScroll.js"></script>
所有这一切都应该包括jquery和angular。另外(我不知道你成功包含app.js的位置,你可能已经这样做了)你需要将AngularJS路由从你的快速服务器(假设快速/节点后端)引导到index.html文件像这样的app文件:
app.use(express.static(path.join(__dirname, 'app_client')));
app.use(function (req,res){
res.sendfile(path.join(__dirname, 'app_client', 'index.html'))
});
我希望这很有帮助。如果您在尝试包含应用程序和控制器的位置发布代码,那么我可以提供更详细的答案。