1

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 ファイルなどを生成するのに適した方法は何ですか?

4

2 に答える 2