【发布时间】:2015-03-26 11:20:01
【问题描述】:
我看到的示例显示了呈现 HTML 文件的指令代替指令。或者控制器将 HTML sn-p 渲染为范围变量,直接写在单引号之间 - 比如
$scope.items = '<ol><li>an item></li> <li>another item</li></ol>'
(这对我来说效果不佳,因为我的 HTML sn-p 中间还有其他单引号似乎会阻止 HTML sn-p 正确呈现。)
以下是我尝试过但不起作用的方法:
控制器代码:
innerapp.controller('ResourcesController', function($scope, $sce, $http) {
$scope.template = 'employeelists.html';
});
HTML 代码:
<div ng-controller="ResourcesController">
<div ng-bind-html-unsafe="template"></div>
</div>
我的 app/assets/templates 文件夹中有“employeelists.html”。我正在使用带有 Rails 的 AngularJS,这个设置已经让我可以像这样调用文件:
div ng-include="'employeelists.html'"></div>
但我希望控制器而不是 ng-include 来呈现 HTML 文件。
基本上,我正在研究这样的功能,如果我在 HTML 页面上选择一个项目(在这个 AngularJS 控制器下),控制器中的一个函数会被调用,它用另一个更新范围变量(链接到模板文件)模板文件。
【问题讨论】:
-
不结合两个答案,给出你想要的?
$scope.template = 'employeelists.html';和<div ng-include="template"></div> -
我不知道你是怎么做的。那么通过控制器更新模板变量,“ng-include”渲染的内容也会发生变化吗?太好了,我去看看。
-
klauskpm,根据 HTML 中的选择,您是否推荐使用指令或控制器在此处呈现变化的模板变量的方法?
-
klauskpm,你的方法对我有用(一个范围变量,它引用 'app/assets/templates' 中的 HTML 文件,并且 ng-include 调用该范围变量)。
标签: html angularjs templates controller render