Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何将所有属性从角度组件传递到模板_Angular_Angular Components - Fatal编程技术网

Angular 如何将所有属性从角度组件传递到模板

Angular 如何将所有属性从角度组件传递到模板,angular,angular-components,Angular,Angular Components,我有一个自定义的Angular 4组件,其中我使用作为模板。组件是选择器,它是i-image,因此它在UI中呈现如下: 我的目的是获取用户在i-image上提供的所有属性,并将它们应用于img标签。例如,此处提供了alt,但它不应用于img标记。我不想对所有可能的属性进行一对一的映射,而是信任用户想要提供的任何东西,并在渲染之前简单地将这些属性添加到img标记中 这可能吗?如果是的话,你能告诉我正确的方向吗。我可以理解代码,只需要知道如何在角度上做到这一点 是的,使用内容投影将带有选择器的标记放

我有一个自定义的Angular 4组件,其中我使用
作为模板。组件是选择器,它是
i-image
,因此它在UI中呈现如下:

我的目的是获取用户在
i-image
上提供的所有属性,并将它们应用于
img
标签。例如,此处提供了
alt
,但它不应用于
img
标记。我不想对所有可能的属性进行一对一的映射,而是信任用户想要提供的任何东西,并在渲染之前简单地将这些属性添加到
img
标记中


这可能吗?如果是的话,你能告诉我正确的方向吗。我可以理解代码,只需要知道如何在角度上做到这一点

是的,使用内容投影将带有选择器的标记放入,然后将整个html代码传递到该选择器中

如果不打破最佳实践,我不确定这是否可行。我怀疑这是否真的是可取的?允许用户插入浏览器将呈现的任意HTML本质上是不安全的。这就是XSS攻击的创建方式。也许你可以通过Angular的内容投影来实现你想要的。这取决于
i-image
应该做什么。
<i-image _ngcontent-c0="" alt="this is alt" ng-reflect-path="/default-image.jpg" ng-reflect-lqip="[object Object]">
    <img src="example.com/a.jpg">
</i-image>
<i-image path="{{path}}" [lqip]="{}" alt="this is alt"></i-image>