我正在开展一个小角度项目,我在其中使用了mattlewis92的引导程序日历,并且我的控制器一直存在问题。
这是我的.js文件:
'use strict';
var app = angular.module('Calendrier574', ['ngMaterial', 'ngRoute', 'mwl.calendar', 'ui.bootstrap', 'ngTouch', 'ngAnimate']);
app.controller("cal574", function(moment, alert, $timeout, $log) {
var vm = this;
vm.events = [];
vm.calendarView = 'day';
vm.viewDate = moment().startOf('month').toDate();
vm.isCellOpen = true;
vm.toggle = function($event, field, event) {
$event.preventDefault();
$event.stopPropagation();
event[field] = !event[field];
};
});
app.config(function(calendarConfig) {
calendarConfig.dateFormatter = 'moment';
});
我希望能够使用两个控制器,因为我希望在同一页面上显示同一日历的两个版本,一个显示日视图,另一个显示月视图。
所以我在.html文件中有这个
<html lang="fr" ng-app="Calendrier574">
这是我的一个div:
<md-content id="content" ng-controller="cal574 as vm" layout-padding flex>
但我一直得到“参数'cal574'不是函数,未定义”。 我查看了有关该主题的帖子,但我找不到任何有用的信息。
如果您还有其他需要请告诉我。
顺便说一句,我正在使用棱角1.5.5。
编辑:我创建了一个jsfiddle,即使这样也缺少依赖关系,它可能会帮助我们更好地查看代码https://jsfiddle.net/zzddpk4v/#&togetherjs=s8M8Vir3rc
DOUBLE EDIT:仍然在寻找解决方案,我正在研究cloud9,所以如果有人想看看几乎工作的整个代码,并尝试直接编辑它, 你可以在这里查看https://ide.c9.io/millenium/back574upsidenav-cloned
答案 0 :(得分:1)
您是否在项目/ html中包含了所有相关的.js文件。
<script src="../path to controller/controller.js"></script>
当我忘记包含.js文件时,我收到了同样的错误。
答案 1 :(得分:0)
您需要将控制器包装在一个函数中:
(function() {
'use strict';
// your controller code here
})();
答案 2 :(得分:0)
尝试更改此行:
app.controller("cal574", function(moment, alert, $timeout, $log) {
要:
app.controller("cal574", ['moment', 'alert', '$timeout', '$log', function(moment, alert, $timeout, $log) {
然后在控制器的末尾添加相应的额外内容。