Javascript Angular.js加载、处理和显示通过REST$resource获得的动态模板
我有一个Angular应用程序,需要支持可定制的报告。我的意图是允许用户从许多可用的报告中选择一个,并让后端RESTAPI以JSON的形式提供模板和数据(最终用户可以自定义模板) 然后,该应用程序将以某种方式将模板插入“报告”视图页面,然后将数据放入范围,并编译和显示报告/模板 我已经研究过ng include,但是它似乎只支持文档的URL或路径,但是我已经通过REST服务获得了模板文本,并且我不能使用静态URL或文件路径,这需要通过REST api实现,如果ng include直接接受了模板文本,这可能会起作用,但不会起作用 我尝试编写一个指令,尝试在页面上调用一个方法(getTemplate()),该方法将加载已经从作用域中获取的模板,但是我的指令显然没有访问该作用域的权限 我应该用什么策略来实现这一点?一个指令似乎是最好的,但我显然是做错了,完全迷失在文档和我的多次尝试中 我试着写一个指令,试着在页面上调用一个方法 (getTemplate()),将加载已从 但是,我的指令无权访问范围 显然 是的,您是对的,但是有一种方法可以将数据从范围传递到指令。假设您希望将变量“x”从作用域传递到指令 用这个 此变量仅在控制器和postlink函数中可用,因此您的指令模板需要如下所示Javascript Angular.js加载、处理和显示通过REST$resource获得的动态模板,javascript,angularjs,rest,templates,dynamic,Javascript,Angularjs,Rest,Templates,Dynamic,我有一个Angular应用程序,需要支持可定制的报告。我的意图是允许用户从许多可用的报告中选择一个,并让后端RESTAPI以JSON的形式提供模板和数据(最终用户可以自定义模板) 然后,该应用程序将以某种方式将模板插入“报告”视图页面,然后将数据放入范围,并编译和显示报告/模板 我已经研究过ng include,但是它似乎只支持文档的URL或路径,但是我已经通过REST服务获得了模板文本,并且我不能使用静态URL或文件路径,这需要通过REST api实现,如果ng include直接接受了模板文
<ng-bind-html="directiveVar"/>
参考资料
您可以将动态模板编译为控制器中DOM上的一个元素,然后在控制器中执行如下操作:
var el = angular.element('#myselector');
el.html(mydynamichtmlfromresource);
$compile(el.contents())($scope);
我将使用带有单个DIV容器的模板设置路由(您可以使用HTMLToJS在线工具或grunt任务在单个JavaScript文件中提取所有静态容器模板):
我会试试这个,谢谢,以前错过了ngBindHtml。
<ng-bind-html="directiveVar"/>
$scope.directiveVar =$sce.trustAsHtml($scope.directiveVar)
var el = angular.element('#myselector');
el.html(mydynamichtmlfromresource);
$compile(el.contents())($scope);
<section class="view">
<div id="myselector"></div>
</section>