我需要从数据库渲染动态模板,还需要将变量绑定到表达式.
我的响应JSON将如下所示,
[{
"htmlTemplate": "
"bindData": {
"name": "safeer",
"age" : "25"
}
}, {
"htmlTemplate": "{{name}}
"bindData": {
"name": "john",
"address":"qwerty"
}
}, {
"htmlTemplate": "
{{name}}
{{country}}
","bindData": {
"name": "james",
"country":"India",
"state" : "Kerala"
}
}]
在html中,demo.html
在指令中,directive.js
var app = angular.module('app', []);
app.directive('dynamic', function ($compile) {
return {
restrict: 'A',
replace: true,
link: function (scope, ele, attrs) {
scope.$watch(attrs.dynamic, function(html) {
ele.html(html);
$compile(ele.contents())(scope);
});
}
};
});
它将呈现html模板,并用$scope变量名很好地替换变量.
但是我需要用相应的bindData渲染每个htmlTemplate.即用隔离的范围数据呈现每个模板.需要泛化指令.
任何帮助表示赞赏!提前致谢.