html - Angular 元素应该被视为 block 还是包装器

标签 html angularjs angularjs-directive tags directive

当使用元素指令时,我看到 Angular 元素指令以两种方式使用:

<强>1。作为 block 级组件

元素的样式为 display:block,是组件,它的子元素是组件的子元素,所以元素本身就是组件。

指令的使用:

<example class="Example"></example>

指令的 html:

<header class="Example-header"></header>
<img class="Example-image">
<footer class="Example-footer"></footer>

<强>2。作为组件的内联包装器

该元素保留为 display:inline 并有效地充当组件本身的不可见包装器:

指令的使用:

<example></example>

指令的 html:

<div class="Example">
  <header class="Example-header"></header>
  <img class="Example-image">
  <footer class="Example-footer"></footer>
</div>

显然每个都有优点和缺点,例如额外的标记、由于内联元素而丢失布局上下文等,但是是正确的方法吗?还是 Angular 的另一种变幻莫测的方法?

最佳答案

我很惊讶没有人回应,但创建自定义指令背后的想法是能够创建可重复使用的代码片段,以实现您网站上的特定功能。

但是,此功能并不关心您将要使用的样式。您当然可以在 Angular 中有条件地更改类和样式,但处理框架时的核心组件是数据。

话虽这么说,但正如您在问题中加粗的那样,没有“正确的方法”。制定符合您的需求和网站风格的指令。

关于html - Angular 元素应该被视为 block 还是包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477623/

相关文章:

javascript - Angularjs属性绑定(bind)优先级

javascript - 检查特定类的 div 是否包含文本或为空

angularjs - 使用 grun 构建时 dist 中没有 View

javascript - Angular.js 摊牌不工作

javascript - Angular 更优雅的隐藏/显示模式吗?

javascript - Angular JS : Search with parameters defined by select

javascript - 使用 jQuery 将类添加到第 n 个属性

html - 未定义方法 `stringify_keys' (ROR)

javascript - HTML5/Javascript 不在屏幕最右侧绘制图 block

javascript - 如何在输入标签中嵌入 SVG 图像图标?