Css 封装的角度组件<;李>;标签
假设我有一些样式列表:Css 封装的角度组件<;李>;标签,css,angular,Css,Angular,假设我有一些样式列表: <ul> <li>...</li> <li>...</li> ... </ul> ... 现在我想将每个项封装到单独的组件中。这样,我们在生成的DOM中得到如下结果: <ul> <my-item><li>...</li></my-item> <my-item><li>...</li
<ul>
<li>...</li>
<li>...</li>
...
</ul>
...
现在我想将每个
项封装到单独的组件中。这样,我们在生成的DOM中得到如下结果:
<ul>
<my-item><li>...</li></my-item>
<my-item><li>...</li></my-item>
...
</ul>
...
问题是,它破坏了样式。我们会在项目之间获得错误的边距、错误的边框等,如果我们使用外部CSS,问题就会变得严重
那么,有没有一种方法可以在不编辑外部CSS文件的情况下将
样式直接应用于
?在AngularJS中,有一个指令的替换选项,但在AngularJS中,它并不存在。Angular2答案
正如@enguerranws所提到的,为组件使用属性选择器,而不是标记选择器
@Component(selector: '[myLi]', ...
//@Component(selector: '[my-li]', ...
像这样使用它
<li myLi>...
<!-- <li my-li>... -->
有点晚了,但是使用下面的解决方案怎么样
<ul>
<my-item class='myLi'>...</my-item> <!-- or -->
<my-item [ngClass.myLi]='isList'>...</my-item>
...
</ul>
您使用的是什么库?通常在类中有相同的元素选择器。为什么需要包装
@HostBinding('attr.someattr')isSomeAttr:boolean=false代码>。如果设置this.isSomeAttr=true
,然后添加属性someattr
,就像
糟糕,我正试图用Angular 1.5组件来做这件事,我认为这个问题是关于它们的。这是因为问题中不清楚:-/我在答案中使它更突出。你能修正你的语法吗?它应该是选择器“[custom attribute name]”,而不是包含字符串的数组。
<ul>
<my-item class='myLi'>...</my-item> <!-- or -->
<my-item [ngClass.myLi]='isList'>...</my-item>
...
</ul>
.myLi {
display: list-item;
// and everything else you've styled your li
}