2013-02-03 31 views
0

我正在嘗試使用AngularUI指令日曆並在我自己的指令中設置其回調函數中的源代碼(所以基本上我將指令包裝到指令中)。

所以用我的HTML指令是:

<calendar><calendar> 

我有這個模板,形成我的包裝指令(calendar.html):

<div class="row-fluid" > 
<div data-ui-calendar="{height: 450,editable: false}" class="span8 calendar" data-ng-model="events"></div> 
</div> 

,並宣佈這個指令:

.directive('calendar', ['calendarFct', function(calendarFct) { 
    return { 
     restrict: 'E', 
     templateUrl: 'partials/directives/calendar.html', 
     link: function(scope, element, attrs) { 
      var mainScope = scope; 
      // load data from server 
      calendarFct.getEvents(function(data) { 
       mainScope.events = data; // DOESN'T WORK 
       }); 

      mainScope.events = data; // this would work, but I don't have "data" here 
     } 
    }; 

所以問題是我想在回調函數中設置scope.events,但它不顯示任何東西在瀏覽器中(但執行回調函數中的代碼)。如果我在回調之外嘗試它,它會工作,但我必須先從服務器加載數據...如何使其工作?我會認爲mainScope的訣竅會起作用,甚至直接scope.events,但是不會。謝謝

它看起來像AngularUI的fullcalendar的一些問題。我試圖指令模板更改爲簡單的輸入框和更改值在回調函數NG-模型綁定和它工作得很好

回答

1

我不回答自己的粉絲問題,但這讓我非常緊張,解決方案也不是很「明顯」。我曾經有AngularUI v.0.3.0。所以我更新到0.3.2和問題走了:/

0

嘗試做

scope.$apply(function(){ 
    mainScope.events = data; 
}); 
+0

不幸的是,拋出異常: 錯誤:$在錯誤() 已經消化進度 在beginPhase(APP/lib目錄/角/ angular.js :8067:15) – ladar

相關問題