在决定将自定义元素实现为NgComponent
或NgDirective
时,是否需遵循一些经验法则?
在决定选择其中任何一个时,要记住哪些问题?
答案 0 :(得分:4)
如果要向现有标签/元素添加功能/行为,请使用指令(如ng-class或ng-hide)。 您可以将指令应用于不同的标签 要创建新的元素/标签,您需要创建一个组件(如手风琴,旋转木马,模态,......) 组件是一个新的自定义元素,可以具有定义其影子DOM内容的模板。
您也可以使用指令动态添加/删除html内容,但是使用组件可以创建内部和外部之间有清晰边界的新元素。
组件具有自己的范围,而不是应用程序范围层次结构的一部分
您无法轻松触及组件内容。
从指令生成的Html与任何其他html标记一样。你有组件的转换(我认为有人正在处理没有阴影DOM的组件和像Angular.js那样的转换,但我不知道这是多远以及它将如何。)
您可以在组件内部使用指令,也可以在组件内部使用组件。