使用angular.element通过ng-click添加元素

时间:2014-02-22 00:37:13

标签: javascript jquery angularjs fullcalendar

我正在尝试在fullcalendar(http://arshaw.com/fullcalendar/docs/)标题的右侧添加几个自定义按钮。

我正在使用angular.element添加如下按钮:

   var calendarHeaderRight = angular.element(".fc-header-right");
   if (calendarHeaderRight)
       calendarHeaderRight.html('<div><a href="#" ng-click="toggleCalendarList()" class="btn btn-sm btn-info">Calendar</a><a href="#" ng-click="toggleCalendarList()" class="btn btn-sm btn-success">List </a></div>');

按钮会附加到日历并显示。问题是当我点击按钮时没有发生任何事情。

所以问题是,我如何追加可以点击的元素?

感谢

托马斯

2 个答案:

答案 0 :(得分:5)

var element = $compile(angular.element('<div><a href="#" ng-click="toggleCalendarList()" class="btn btn-sm btn-info">Calendar</a><a href="#" ng-click="toggleCalendarList()" class="btn btn-sm btn-success">List </a></div>'))(scope);

然后你可以在你的div中包装这个元素。 Here is angular document关于编译。

:)享受它。

答案 1 :(得分:0)

    var html = angular.element('<div><a href="#" ng-click="toggleCalendarList()" class="btn btn-sm btn-info">Calendar</a><a href="#" ng-click="toggleCalendarList()" class="btn btn-sm btn-success">List </a></div>')
    var compiled = $compile(html)
    calendarHeaderRight.html(html)
    compiled($scope)

在Angular中查看编译基本上遍历你给它的任何节点的整个DOM树,创建一个单独的函数,当被调用时将执行它在DOM树中找到的每个指令的每个链接函数,具有适当的范围,元素,属性和(可选)控制器。

泰勒刚刚崩溃的事情几乎一样。