【发布时间】:2016-02-26 19:16:04
【问题描述】:
假设我有一些样式列表:
<ul>
<li>...</li>
<li>...</li>
...
</ul>
现在我想将每个 <li> 项目封装到单独的组件中。这样做,我们会在生成的 DOM 中得到类似的东西:
<ul>
<my-item><li>...</li></my-item>
<my-item><li>...</li></my-item>
...
</ul>
问题是,它破坏了样式。我们会在项目之间得到错误的边距、错误的边框等。如果我们使用外部 CSS,问题就会变得很糟糕。
那么,有没有办法将<li> 样式直接应用到<my-item> 而无需编辑外部CSS 文件?在 AngularJS 中有一个用于指令的 replace 选项,但在 Angular 中它不存在 afaik。
【问题讨论】:
-
你用的是什么库?,通常你在一个类中有相同的元素选择器。
-
为什么需要
来包装 - ?您不能简单地使用指令 (
- 或只是
) 吗?甚至更简单,ngRepeat? -
enguerranws,Angular 2 中的指令不应该有模板。如果我需要在里面显示一些数据怎么办?当然,它可以通过额外的 DOM 操作来实现,但我认为这不是一个好主意。另一方面,组件总是将其内容包装到外部标签中。
-
@troorl 你在使用哪个库?同样,它应该具有与css类匹配的样式,而不仅仅是html元素。
-
@troorl “在 Angular2 中的指令不应该有模板”是什么意思。如果要添加内容,请使用组件而不是指令。组件有一个模板。