だから私がやりたいことは、生成ボタンをクリックしたときに読み込みディレクティブを表示し、レポートが完了したときに読み込みディレクティブを非表示にすることです。Visualize.js には「reportCompleted」イベントがあるため、フェッチ変数を false に更新して、読み込みディレクティブを非表示にしました。
<button class="btn btn-default" data-ng-click="vm.generateReport(filter)">Generate</button>
<div class="text-center info-message" data-ng-show="vm.fetching">
<loading message="Fetching report..."></loading message>
<span>{{vm.fetching}}</span>
</div>
これが私のコントローラーの中身です:
var self = this;
// this is declared on top as default variable
self.fetching = false;
これは、読み込みディレクティブとレポートを表示するために呼び出されるメソッドです
function generateReport ( filterData ) {
// show loading directive
self.fetching = true;
v( '#report' ).report( {
'resource' : '/public/Samples/Reports/01._Geographic_Results_by_Segment_Report',
'container' : '#report',
'error' : handleError,
'events': {
'reportCompleted' : function( status ) {
self.fetching = true;
if( status === 'ready' ) {
// hide loading directive
self.fetching = false;
self.reportRendered = true;
}
}
}
} );
} );
}
私の問題は、イベント リスナー 'reportCompleted' でフェッチ変数を更新しても、読み込みディレクティブが非表示にならないことです。視覚化メソッドの外側で console.log( self.fetching ) を試しましたが、false を返す代わりに true を返します。なぜこうなった?