HTML フラグメントを読み込んで div タグ内に表示しようとしています。だから私は簡単なディレクティブを書きました:
myDirectives.directive('myRpt', function () {
'use strict';
return {
restrict: 'A',
scope: true,
link: function (scope, elem, attrs, ctrl) {
var htmlExpr = attrs.myRpt;
scope.$watch(htmlExpr, function (newHtml) {
if (newHtml) {
elem.html(newHtml);
}
}, false);
}
};
});
html ページでは、以下のように使用されます。
<div my-rpt="report">
</div>
今私が持っているコントローラで:
$http.get('api/v1/general_ledger', { params: { q: { filter: [
{ 'name': 'begin_date', 'op': '==', 'val': $scope.criteria.beginDate },
{ 'name': 'end_date', 'op': '==', 'val': $scope.criteria.endDate }]
}}}).then(
function (resp) {
$scope.report = resp.data;
},
function (resp) {
//TODO: show error message
}
);
上記のコードは機能しますが、それが十分なアプローチであるかどうかはわかりません。たとえば、 $scope.report には非常に大きな文字列/html コンテンツが含まれる場合がありますが、ブラウザーには独自の解析済みコピーがあると思います。また、一般的にビジネス レポートを作成し、必要に応じて PDF や Excel ファイルなどを生成するのに適した方法は何ですか?