角度日历 - 单击事件无效

时间:2014-11-07 13:48:29

标签: angularjs angularjs-directive calendar

我按照

中的角度日历

https://github.com/10KB/angular-clndr

我无法让点击事件发挥作用。我在链接中使用完全相同的代码。

如果我错过了任何设置,请告诉我。

我的代码是

<tien-clndr class="clndr" tien-clndr-object="clndr" tien-clndr-events="events">
                <div class="clndr-controls">
                    <div class="clndr-previous-button" ng-click="clndr.back()">
                        &lsaquo;
                    </div>
                    <div class="month">
                        {{month}} {{year}}
                    </div>
                    <div class="clndr-next-button" ng-click="clndr.forward()">
                        &rsaquo;
                    </div>
                </div>
                <div class="clndr-grid">
                    <div class="days-of-the-week">
                        <div class="header-day" ng-repeat="day in daysOfTheWeek track by $index">
                            {{day}}
                        </div>
                    </div>
                    <div class="days">
                        <div class="{{day.classes}}" ng-repeat="day in days">
                            <div class="event-indicator" ng-show="day.events" ng-click="showEvents(day.events)">{{day.events.length}}</div>
                            {{day.day}}
                        </div>
                    </div>
                </div>
            </tien-clndr>

控制器

function showEvents(data) {
                console.log("Event");
                console.log(data);
            }

module.js

angular.module( 'MYAPP',[ 'tien.clndr']);

注入模块成功。但我没有看到函数showEvents被调用。

感谢。

1 个答案:

答案 0 :(得分:1)

您的控制器不是控制器,您需要在其中注入$ scope并将您的函数绑定到它以使其工作,如下所示:

var calendarController = function($scope){
    $scope.showEvents = function(data){
        console.log("Event");
        console.log(data);
    }
}

更新您的模块注册:

var myapp = angular.module('myapp',['tien.clndr']);

注册控制器:

myapp.controller('calendarController', calendarController);

然后在 ng-app =&#34; myapp&#34; 的位置旁边放置:

ng-controller="calendarController";