【问题标题】:Directives in Angular: why are they useful? Can't they just be substituted by (event)s?Angular 中的指令:它们为什么有用?它们不能被(事件)代替吗?
【发布时间】:2019-08-17 22:39:34
【问题描述】:

我是 Angular2 的新手,我正在阅读元素、组件、指令等之间的差异,但我不明白为什么存在 @Directive。

我已经阅读了文档(没有必要链接它,谢谢,我已经检查过了)并且我已经看到 @Component 是指令的一个特例。此外,还有不同种类的指令(结构、属性和已经提到的组件)。然而,在一天结束时,我查看了一些@Directive 的示例,我发现它们可以被相应的@Component 中的(事件)替换。

示例:此页面中@Directive 的主要示例 @Directive v/s @Component in Angular 可以替换为类似于

<contact-card [name]="'foo'" [city]="'bar'" (onClick)="someAction()"></contact-card>

可能我没有正确理解它并且无法替换它,但如果是这样,是否有任何充分的理由或有用的示例说明使用 @Directive 实际上是必要的或比调整 @Component 更简单?

提前致谢!

【问题讨论】:

  • 这是一个完美的指令示例:angular.io/guide/attribute-directives
  • 谢谢你的例子。我已经读过它并且我有一种感觉(虽然我没有实现它),正如我所问的,这个@Directive 可以被等量的代码代替。类似:&lt;p (mouseenter)="enter($event)" (mouseleave)="leave($event)&gt;Highlight me!&lt;/p&gt; 但是,正如我所说,我可能错了。实际上,我会尝试将其作为练习。
  • 在提到的另一个问题中,有一个非常有趣的指令应用,但其他答案显示还有其他解决方案,因此它没有回答我的问题。无论如何,我感觉指令只是一个(稍微)不同的工具,可能会或可能不会用于解决给定问题。

标签: angular angular2-directives


【解决方案1】:

指令将行为添加到现有 DOM 元素或现有组件实例。

一个组件,而不是添加/修改行为,实际上创建了它自己的视图(DOM 元素的层次结构)和附加的行为。

参考以下文档:

Directive

Component

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2011-09-11
    • 1970-01-01
    • 2011-05-19
    相关资源
    最近更新 更多