如何将属性设置为内部HTML
tpl.html
<div class="my-templeate"></div>
HTML
<template></template>
指令
app.directive('template', ['$compile', function($compile) {
return {
restrict: "EA",
templateUrl: './tpl.html',
link: function($scope, $elm, $attr) {
var elm =$elm[0].innerHTML;
elm.attr('id', "someId");
}
};
}]);
在这里,我想将属性设置为附加到<div class="my-templeate"></div>
元素的innerHtml <template></template>
。
我该怎么做?
答案 0 :(得分:1)
只要您拥有这个庞大而强大的框架,您也可以使用它。设置范围数据并让模板读取它,而不是绕过Angular自己编辑DOM。模板:
<div class="my-template" id="{{someId}}"></div>
指令:
app.directive('template', ['$compile', function($compile) { // $compile is unnecessary here unless you're using it for something else in this directive
return {
templateUrl: './tpl.html',
link: function($scope, $elm, $attr) {
$scope.someId = "whatever";
}
};
}]);
一般来说,如果你在使用Angular时直接操作DOM,你可能会以艰难的方式或完全错误的方式做事。