Angular $ compile to string for code generation

时间:2015-08-12 23:05:49

标签: angularjs code-generation

我正在使用Angular构建通用代码生成器

我有动态数据结构&用于构建不同类型代码的模板。 HTML,C#,SQL,Javascript,CSS,Ruby。

enter image description here

我已经将$ compile函数作为指令的一部分工作,并且它在Angular页面中注入元素。

我真正需要的是生成输出一个简单的字符串。

我读到的每篇文章都谈到了将编译后的输出并注入角度管道,这不是我的要求。

有谁知道我可以从已经与我的范围数据合并的已编译模板中提取一个简单的字符串?

angular.module('workibleServerApp')
  .directive('generateDynamicTemplate', ['$compile', function ($compile) {
      return {
          scope: true,
          data: '=',
          rawTemplate: '=',
          restrict: 'E',
          link: function (scope, element, attrs) {

              scope.$watchGroup([attrs.data, attrs.rawTemplate], function (newValues) {

                  scope.data = newValues[0];
                  var rawTemplate = newValues[1];

                  element.html('');
                  //element.html('<textarea id="outputRaw" name="outputRaw" class="form-control" rows="12">');

                  if (!_.isEmpty(scope.data) && !_.isEmpty(rawTemplate)) {
                      var tl = angular.element(rawTemplate);
                      var compiled = $compile(tl)(scope);
                      element.append(compiled);

                      scope.convertToString = compiled;
                  }
                  //element.append('</textarea>');
              });


          }
      };
  }]);

convertToString未填充

              <div class="col-md-6">
                    <h6><strong>Output</strong></h6>
                    <!-- This renders output from the directive, all GOOD -->
                    <generate-dynamic-template data="model.richData" raw-template="model.template"></generate-dynamic-template>

<!-- Neither of these work, This Does not work -->
<pre>
{{convertToString}}
</pre>
                    <textarea>{{convertToString}}</textarea>

                    <!--<textarea id="output" name="output" ng-model="model.output" rows="20" placeholder="Output" class="form-control input-sm"></textarea>-->
                </div>

0 个答案:

没有答案