首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免组件封装或更改封装器的属性

避免组件封装或更改封装器的属性
EN

Stack Overflow用户
提问于 2018-09-20 13:24:00
回答 1查看 26关注 0票数 0

我正在构建一个动态添加组件的应用程序。例如,我有一个带模板的块组件:

代码语言:javascript
复制
  <div id="{{element.id}}" class="row"  [hidden]="hide">
       <h2>{{element.title}}</h2>
       <div class="{{element['col-size']}}">    
          <ng-template #BlockComponentContainer></ng-template>
       </div>
  </div>

在我的组件中,如果我不设置“选择器”属性,我的块就会被"ng- component“封装,因为它破坏了我的CSS框架。

代码语言:javascript
复制
     <app-page-form-part>
   <ng-component>
       <div id="{{element.id}}" class="row"  [hidden]="hide">
          <h2>{{element.title}}</h2>
          <div class="{{element['col-size']}}">    
          <ng-template #BlockComponentContainer></ng-template>
          </div>
       </div>
   </ng-component>

我希望要么避免封装(解决方案A),要么能够动态地操作封装器(解决方案B)上的属性/指令。

解A :

代码语言:javascript
复制
    <app-page-form-part>
       <div id="{{element.id}}" class="row"  [hidden]="hide">
          <h2>{{element.title}}</h2>
          <div class="{{element['col-size']}}">    
          <ng-template #BlockComponentContainer></ng-template>
          </div>
       </div>
     </app-page-form-part>

解决方案B :

代码语言:javascript
复制
<app-page-form-part>
     <block id="{{element.id}}" class="row"  [hidden]="hide">
          <h2>{{element.title}}</h2>
          <div class="{{element['col-size']}}">    
              <ng-template #BlockComponentContainer></ng-template>
          </div>

      </block>
</app-page-form-part>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-20 13:58:27

好的,我使用了主机绑定,然后选择了解决方案B:

代码语言:javascript
复制
 @HostBinding('attr.id') host_id;
 @HostBinding('class') host_classes = 'Block';

当元素准备好时,我可以设置我的host_classes,唯一的缺点是,在主机上使用ngif或使用deletable属性似乎不可能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52426193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档