从AngularJS模板字符串生成HTML字符串
Generate HTML string from AngularJS template string
我有angularjs模板作为一个字符串,包括"ng repeat"和其他指令。我想在控制器中编译它,以产生字符串形式的结果HTML。
关于我想在Angular中应用的示例:
Input:
-------
var template = '<div ng-repeat="item in items">{{item.data}}</div>';
Output:
--------
var result = '<div>1</div><div>2</div><div>3</div><div>4</div>';
我希望这是在控制器中完成的,我已经尝试了以下操作:
var template = '<div ng-repeat="item in items">{{item.data}}</div>';
var linkFunction = $compile(template);
var result = linkFunction($scope);
console.log(result); // prints the template itself!
谢谢!
试试这个:
var template = angular.element('<div ng-repeat="item in items">{{item.data}}</div>');
var linkFunction = $compile(template);
var result = linkFunction($scope);
$scope.$apply();
console.log(template.html());
为此,我在几个项目前为自己制定了一个指令:
angular.module('myApp')
.directive('ngHtmlCompile', ["$compile", function ($compile) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
scope.$watch(attrs.ngHtmlCompile, function (newValue, oldValue) {
element.html(newValue);
$compile(element.contents())(scope);
});
}
}
}]);
然后例如:
<div ng-html-compile='<div ng-repeat="item in items">{{item.data}}</div>'></div>
甚至字符串可以是动态的:
<div ng-repeat="item in items" ng-html-compile="item.template">
</div>
相关文章:
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 如何使用gump任务将html转换为javascript字符串
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- HTML字符串作为上下文
- 字符串中的
标记未正确在 HTML 中创建新行 - 将HTML(支持文件)中的令牌(字符串、数字等)传递给LogiXML
- 如何使用javascript选择字符串的部分,添加html标记或删除部分
- Visual Studio 2015 扩展将 JavaScript 文件中的字符串 HTML 视为 HTML 编辑
- 如何使用jquery插入多行字符串html
- 创建一个通过页面的查询字符串HTML表单
- PayPal确认,然后返回一个字符串HTML(js或任何其他..)
- 使用Javascript DOMParser将单字符串HTML格式化为多行选项卡HTML
- 如何转义字符串(HTML)中的多个层次引号
- 解析笑脸与文本字符串html和保持笑脸在显示顺序
- Regex帮助,JS尝试将字符串(html)转换为数字
- removeAttr在字符串html
- jqgrid asp.net-Javascript字符串HTML合成
- 如何用另一个标记替换字符串HTML标记
- 将变量追加到字符串html中