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-model にバインドされた値を変更しようとしたところ、問題なく動作しました

4

2 に答える 2

1

私は自分の質問に答えるのが好きではありませんが、それには多くの神​​経が必要であり、解決策は「明白」ではありません。以前は AngularUI v.0.3.0 を使用していました。だから私は0.3.2にアップデートし、問題はなくなりました:/

于 2013-02-03T19:45:11.003 に答える
0

やってみる

scope.$apply(function(){
  mainScope.events = data;
});
于 2013-02-03T17:37:56.420 に答える