Angularjs 错误:[ng:areq]参数';公告Ctrl';不是函数,未定义
我得到一个错误,即“announcementCtrl”不是一个函数?有人能告诉我我做错了什么吗。它的定义很明确,所以发生了什么? 这是我的javascript:Angularjs 错误:[ng:areq]参数';公告Ctrl';不是函数,未定义,angularjs,controller,undefined-function,Angularjs,Controller,Undefined Function,我得到一个错误,即“announcementCtrl”不是一个函数?有人能告诉我我做错了什么吗。它的定义很明确,所以发生了什么? 这是我的javascript: (function() { var app = angular.module('announcementApp', []); app.controller('announcementCtrl', function() { this.announcements = announcementsArray; });
(function() {
var app = angular.module('announcementApp', []);
app.controller('announcementCtrl', function() {
this.announcements = announcementsArray;
});
var announcementsArray = [
{
type: 'UPDATE',
announcement: 'DISA Maps are almost complete! Look foward to reporting out at the project share next week.'
},
{
type: 'SHOUT-OUT',
announcement: 'Great work to Lawson and Patrick on Innovation Cell. We are gaining more strategic position and proving our value everyday.'
},
{
type: 'EVENT',
announcement: 'Dr. Chipley will be visiting 3/20/2015 to talk Cybersecurity'
}
];
})();
这是我的HTML:
<div class="row row2" ng-app="announcementApp">
<section class="sub-box client-box">
<div class="announcements" ng-controller="announcementCtrl as announcements">
<div class="announcement-block" ng-repeat="eachAnnouncement in announcements">
<div class="event-highlight update"></div>
<div class="wrap">
<div class="announcement-description">{{eachAnnouncement.type}}</div>
<div class="announcement">{{eachAnnouncement.announcement}}</div>
</div>
</div>
</div>
</section>
</div>
{{eachAnnouncement.type}
{{eachAnnouncement.announcement}
看起来您混淆了控制器的“句柄”和要访问的属性。由于您没有注入$scope
ng controller=“announcementCtrl as announcements”
将公告声明为此
的一种“处理程序”。在您的控制器中,您将this.announcements
声明为您的数组。因此,它应该是ng repeat=“eachAnnouncement in announces.announces”
(第一个通知=控制器中的此项,第二个=阵列)
查看文档中的代码示例:
编辑:也许答案有点混乱,但它可以正常工作:
我已将您的控制器句柄重命名为“ctrl”,以更清楚地显示更改的内容。尝试使用
$scope
保存您的值:
app.controller('announcementCtrl', function($scope) {
$scope.announcements = announcementsArray;
});
在我这样做之后,我只在注释我的controller
定义时收到相同的错误
此外,请清除浏览器的缓存
演示:不确定您是否刚刚从代码中发出了这个消息,但您是否在标记中包含了javascript文件?@peppermcknight是的,我有。这是我从控制器中调用的第一个js文件。这是我从控制器中调用的第一个js文件。其他js文件是否也包含
angular.module('announcementApp',[])代码>?否其他文件引用的整个正文有一个不同的模块。我遇到的问题是,我认为app.js文件根本没有被调用?我尝试在控件中记录一些东西,但它没有记录。修复了它!只需将引用父模块的所有模块放在一个文件夹中,然后将“announcementApp”模块作为依赖项添加到父模块下。仍然出现错误:[ng:areq]参数“announcementCtrl”不是函数,未定义它!只需将所有引用父模块的模块放在一个文件夹中,然后将“announcementApp”模块作为依赖项添加到父模块下。