javascript - Angular.js 加载、处理并显示通过 REST $resource 获取的动态模板

标签 javascript angularjs rest templates dynamic

我有一个 Angular 应用程序需要支持可自定义的报告。我的目的是允许用户选择众多可用报告之一,并让后端 REST API 提供模板和 JSON 数据(最终用户可以自定义模板)。

然后,应用程序将以某种方式将模板插入到“报告” View 页面中,然后将数据放入范围内,Angular 应该编译并显示报告/模板。

我已经研究过 ng-include 但是它似乎只支持文档的 URL 或路径,但是我已经通过 REST 服务获得了模板文本,并且我不能使用静态 url 或文件路径,这需要通过 REST api,如果 ng-include 直接接受模板文本,可能会起作用,但不会。

我尝试编写一个指令,尝试调用页面上的一个方法 (getTemplate()),该方法将加载已从范围中获取的模板,但我的指令显然无法访问该范围。

我应该使用什么策略来实现这一目标?指令似乎是最好的,但我显然做错了,并且完全迷失在文档和我试图实现这一目标的许多尝试中。

最佳答案

您可以将动态模板编译为 Controller 中 DOM 上的元素,然后在 Controller 中具有如下内容:

var el = angular.element('#myselector');   
el.html(mydynamichtmlfromresource);

$compile(el.contents())($scope);

我将使用具有单个 DIV 容器的模板设置您的路线(您可以使用 HTMLToJS 在线工具或 grunt 任务将所有静态容器模板提取到单个 JavaScript 文件中):

<section class="view">
  <div id="myselector"></div>
</section>

关于javascript - Angular.js 加载、处理并显示通过 REST $resource 获取的动态模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21591549/

相关文章:

javascript - 使用javascript刷新html页面时如何清除按钮点击?

javascript - 如何防止出错时调用异步回调

javascript - 如何使用 TypeScript Controller 和 Angular Js 绑定(bind)数据

java - 如何通过休息调用使用输入表单获取数据?

javascript - 为什么 splice 返回的是字符串而不是数组?

javascript - 在 ng-repeat 中通过 angularjs 增加索引值

angularjs - 使用 ngSanitize 允许一些 html 标签

java - 如何将变量数组传递给android中的REST URL?

java - 为什么应该为 JAX-RS 实现声明一个接口(interface)?

javascript - 具有多 Ajax 文件上传和进度的 FileReader