Если вы имеете в виду, что атрибуты удаляются при привязке к innerHTML элемента в шаблоне, кажется, что эти атрибуты не разрешены дезинфицирующим средством. Вероятно, в основном потому, что они не очень полезны в приложении Angular. Я не знаю, считаются ли id
и data
потенциально небезопасными. Я знаю, что формы, входы, кнопки и т. Д. Настолько бесполезны name
.
Разрешенные атрибуты перечислены в html_sanitizer.ts ( полный источник ):
const HTML_ATTRS = tagSet('abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,'
+ 'compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,' + 'ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,' + 'scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,' +
'valign,value,vspace,width');
Если вам действительно нужны атрибуты id, name или data (зачем вам на самом деле?) И можете доверять html 110%, т.е. он не был получен из какого-либо пользовательского ввода или вы уже очистили его на стороне сервера, вы можете вызвать DomSanitizer.bypassSecurityTrustHtml () с ним перед привязкой (или в канале), чтобы оставить html нетронутым.