从AngularJS控制器插入HTML到视图是否可以在AngularJS控制器中创建HTML片段并在视图中显示此HTML?这是因为需要将不一致的JSON BLOB转换为id : value成对。因此,HTML是在控制器中创建的,我现在要显示它。我已经创建了一个模型属性,但如果不打印HTML,则无法在视图中呈现该属性。更新这个问题似乎是由于将所创建的HTML呈现为引号中的字符串而产生的。会想办法绕过这件事。示例控制器:var SomeController = function () {
this.customHtml = '<ul><li>render me please</li></ul>';}示例视图:<div ng:bind="customHtml"></div>给予:<div>
"<ul><li>render me please</li></ul>"</div>
4 回答
慕田峪7331174
TA贡献1828条经验 获得超13个赞
var app = angular.module("demoApp", ['ngResource']);app.filter("trust", ['$sce', function($sce) { return function(htmlCode){ return $sce.trustAsHtml(htmlCode); }}]);
<div ng-bind-html="trusted_html_variable | trust"></div>
注
收到一只叮咚
TA贡献1821条经验 获得超4个赞
好的,我找到了解决方案:
联署材料: $scope.renderHtml = function(html_code){ return $sce.trustAsHtml(html_code);};
HTML: <p ng-bind-html="renderHtml(value.button)"></p>
angular.module('MyModule').controller('MyController', ['$scope', '$http', '$sce', function ($scope, $http, $sce) { $scope.renderHtml = function (htmlCode) { return $sce.trustAsHtml(htmlCode); }; $scope.body = '<div style="width:200px; height:200px; border:1px solid blue;"></div>'; }]);
<div ng-controller="MyController"> <div ng-bind-html="renderHtml(body)"></div></div>
添加回答
举报
0/150
提交
取消