Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/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 什么时候在angular中使用指令?_Angularjs - Fatal编程技术网

Angularjs 什么时候在angular中使用指令?

Angularjs 什么时候在angular中使用指令?,angularjs,Angularjs,我正在使用angular js,有一件事我还没有完全理解。我知道指令是什么:它们是我们添加到HTML中的“附加功能”,可以用作元素、属性、注释或类,可以通过angular渲染的其他东西完全更改那里的标记,或者可以使用link函数添加功能 那很好,但是什么时候使用指令呢?我知道,如果我们想在屏幕上表示某个特定于域的对象,那么这可能是一个指令的候选对象,或者当我们想将功能添加到某个HTML元素(如输入的滑块功能)时,我们使用一个指令。但是其他的情况呢?比如,当我们想要操纵DOM来激活侧边栏之类的功能

我正在使用angular js,有一件事我还没有完全理解。我知道指令是什么:它们是我们添加到HTML中的“附加功能”,可以用作元素、属性、注释或类,可以通过angular渲染的其他东西完全更改那里的标记,或者可以使用link函数添加功能

那很好,但是什么时候使用指令呢?我知道,如果我们想在屏幕上表示某个特定于域的对象,那么这可能是一个指令的候选对象,或者当我们想将功能添加到某个HTML元素(如输入的滑块功能)时,我们使用一个指令。但是其他的情况呢?比如,当我们想要操纵DOM来激活侧边栏之类的功能时,会怎么样?是否使用指令来执行此操作

如何知道何时在angular中使用指令?

一些指令规则:
  • 如果计划多次添加相同的基于标记的功能,请创建一个指令(但如果指令足够简单,只需使用
    ng include
  • 如果需要修改
    ng model
    ed输入字段验证、格式化或解析的方式,请创建需要
    ngModel
    的指令
  • 如果您想让编写特定标记的单元测试变得更容易,请编写一条指令
  • 如果您来自jQuery背景,并且本能地想从控制器中使用$('.jQuery样式选择器),请编写一组指令,其中子指令
    需要父指令
    ,并通过指令控制器进行通信

当我面对以下两种情况之一时,我会想到指令:

  • 自定义控件:我需要实现一个自定义控件,我可能会在我的应用程序的其他部分甚至其他项目中重用它
  • 自定义验证:AngularJS提供了一组有限的验证(例如ngRequired、RegEx…),但您肯定需要实现自定义逻辑验证。我更喜欢在指令中实现这种验证(重用、SRP、易于隔离测试),而不是用这种逻辑重载控制器

谢谢你的回答,布劳里奥。同样,对于一个有意义的接口(甚至在一个“视觉上”),考虑这些指令是否也是一个好主意?如果它是孤立的有意义的事情,这是个好主意,你可以在不与其他代码耦合的小块中中断代码。更容易测试,更容易维护。