此解决方案不使用硬编码模板,您可以编译嵌入在API响应中的Angular表达式。
步骤2.在模块中包含指令。angular.module("app", ["angular-bind-html-compile"])
步骤3.在模板中使用该指令:
结果:
控制器对象$scope.letter = { user: { name: "John"}}
JSON响应{ "letterTemplate":[
{ content: "Dear {{letter.user.name}}," }]}
HTML输出=
Dear John,
为了参考,这是相关的指令:(function () {
'use strict';
var module = angular.module('angular-bind-html-compile', []);
module.directive('bindHtmlCompile', ['$compile', function ($compile) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
scope.$watch(function () {
return scope.$eval(attrs.bindHtmlCompile);
}, function (value) {
element.html(value);
$compile(element.contents())(scope);
});
}
};
}]);}());