2014-02-22 19 views
2

我試圖將幾個自定義按鈕添加到fullcalendar標頭的右側部分(http://arshaw.com/fullcalendar/docs/)。使用ng-click使用angular.element添加元素

我使用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>'); 

的按鈕確實會附加到日曆顯示。問題是當我點擊按鈕時沒有任何事情發生。

所以問題是,我該如何追加可被點擊的元素?

感謝

托馬斯

+0

你可以發佈小提琴嗎? –

+0

沒有編譯,Angular不能綁定到任何指令。這種約束是所有Angular-y善良的來源。請參閱@ Tyler.z.yang的鏈接答案。 – reergymerej

回答

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) 

查看編譯基本橫貫你給它的任何節點,創建一個單一的功能,整個DOM樹,當叫會從每一個發現在DOM樹指令執行每一個邏輯函數,用適當的範圍,元素,屬性和(可選)控制器。

泰勒所做的幾乎是一樣的事情只是分解。