何时使用angular中的指令?

时间:2014-05-31 17:06:18

标签: angularjs

我正在使用角度js,有一件事我还没有完全理解。我知道是什么指令:它们是我们添加到HTML中的“附加功能”,可以用作元素,属性,注释或类,并且可以通过其他一些事物完全改变标记。 angular或可以通过链接功能添加功能。

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

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

2 个答案:

答案 0 :(得分:4)

当我面对这两种情况中的一种时,我会考虑指令:

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

答案 1 :(得分:2)

一些指令规则:

  • 如果您计划多次添加相同的基于标记的功能,请创建一个指令(但如果它很简单,只需使用ng-include)。
  • 如果您需要修改ng-model输入字段验证,格式化或解析的方式,请创建需要 ngModel的指令。
  • 如果您想让特定的标记更容易编写单元测试,请编写指令。
  • 如果你来自jQuery背景并且本能地感觉你喜欢从你的控制器使用$('。 jquery-style-selectors '),而是写一组子指令的指令require父指令,并通过指令控制器进行通信。