Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 什么时候应该使用组件而不是指令?_Angularjs_Angular Directive - Fatal编程技术网

Angularjs 什么时候应该使用组件而不是指令?

Angularjs 什么时候应该使用组件而不是指令?,angularjs,angular-directive,Angularjs,Angular Directive,第1.5节介绍: 在Angular中,组件是一种特殊的指令,它使用更简单的配置,适用于基于组件的应用程序结构 与指令相比,我似乎找不到使用它们的任何优势。据我所知,它们的功能较少(例如不再有compile或link函数),并且引入了一些稍微不同的语法 使用它的文档是因为它“更简单”,并且有助于过渡到Angular 2,但是Angular 2中仍然有指令,对吗?有什么理由我应该在Angular 1.5应用程序中将指令转换为组件吗 角度2 组件具有视图,它是UI的一部分。 指令不起作用 这很简单,如

第1.5节介绍:

在Angular中,组件是一种特殊的指令,它使用更简单的配置,适用于基于组件的应用程序结构

与指令相比,我似乎找不到使用它们的任何优势。据我所知,它们的功能较少(例如不再有
compile
link
函数),并且引入了一些稍微不同的语法

使用它的文档是因为它“更简单”,并且有助于过渡到Angular 2,但是Angular 2中仍然有指令,对吗?有什么理由我应该在Angular 1.5应用程序中将指令转换为组件吗

角度2 组件具有视图,它是UI的一部分。 指令不起作用

这很简单,如果您的元素有一个视图/模板,那么它就是一个组件。 如果它只需要获取元素,那么将attribtues、register更改为events->directive

角度1
在angular 1中,组件是指令的外观。换句话说,组件(角度1.5+)是用于创建指令的工厂。使用组件是最佳实践,因为它以“正确”的方式创建指令。Angular1中的指令是超级可配置的,并且有很多选项,这会导致angular的实现和PR较差:)因此添加该组件是为了帮助开发人员以正确的方式创建指令(无作用域、一致的控制器as等)。

我应该提到我没有使用angular 2。这个答案适用于角度1.5吗?不,这个答案只适用于角度2。在angular 1中,组件是指令的
facade
。换句话说,组件(角度1.5+)是用于创建指令的工厂。使用组件是最佳实践,因为它以“正确”的方式创建指令。Angular1中的指令是超级可配置的,并且有很多选项,这会导致angular2的实现差和PR差:),因此添加该组件是为了帮助开发人员以正确的方式创建指令(无范围、一致的控制器as等)。与其提及,不如删除
angular2
标记。