3

我正在做一个小角度项目,我在其中使用 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

双重编辑:仍在寻找解决方案,我正在研究 cloud9,所以如果有人想查看几乎可以正常工作的整个代码,并尝试直接编辑它,你可以在这里查看https://ide.c9.io /millenium/back574upsidenav-克隆

4

3 回答 3

1

您是否在项目/html 中包含了所有相关的 .js 文件。

  <script src="../path to controller/controller.js"></script>

当我忘记包含 .js 文件时,我得到了同样的错误。

于 2016-06-03T09:07:07.610 回答
0

您需要将控制器包装在一个函数中:

(function() {
    'use strict';
    // your controller code here
})();
于 2016-06-03T08:48:00.637 回答
0

尝试更改此行:

app.controller("cal574", function(moment, alert, $timeout, $log) {

至:

app.controller("cal574", ['moment', 'alert', '$timeout', '$log', function(moment, alert, $timeout, $log) {

然后在控制器末尾添加相应的额外]。

于 2016-06-03T11:17:46.613 回答