show-text-modal-directive.js 845 Bytes
directive_module.directive('showtextmodal', showTextModalDirective);

function showTextModalDirective() {
    return {
        restrict: 'E',
        templateUrl: '../../views/component/show-text-modal.html',
        transclude: true,
        replace: true,
        scope: {
            text: '='
        },
        link: function (scope) {
            scope.$watch('text', init);

            function init() {
                scope.jsonObject = undefined;
                if (isJsonText(scope.text)) {
                    scope.jsonObject = JSON.parse(scope.text);
                }
            }

            function isJsonText(text) {
                try {
                    JSON.parse(text);
                } catch (e) {
                    return false;
                }
                return true;
            }
        }
    }
}