AngularJs-为什么像Angular strap和UI Bootstrap这样的指令使用提供者来构建他们的组件

AngularJs - Why directives like Angular-strap and UI-Bootstrap use providers to build their compotents

本文关键字:指令 提供者 组件 他们的 构建 Angular 为什么 strap Bootstrap UI AngularJs-      更新时间:2023-09-26

我计划构建我的第一个复杂指令,这是一个组件,允许用户裁剪和旋转提供的图像,并将其作为Blob或Base64字符串返回。我一直在研究其他人是如何做到这一点的,我使用Angular strap和UI Bootstrap作为指导,了解如何构建高效的指令和组织代码的方法。

让我感到困惑的是,像Modal和Alert这样的组件使用提供程序来构建组件并返回它,在指令中,它使用这样的提供程序在编译时生成内容,而像Tabs这样的其他组件则使用一个用于所有逻辑的单个控制器和一组使用这样的控制器在编译时构建的一个或多个指令和子指令的组合。

  1. 那么,为什么他们在某些组件上使用提供者方法,而在其他组件上使用控制器方法呢
  2. 在提供者内部构建所有逻辑比在控制器中构建所有逻辑有什么好处

我注意到的另一件事是,他们的指令通过数据属性接受选项,他们在编译时解析数据属性,为什么不使用指令范围来设置全局选项?

编写一个提供程序,然后在指令中使用它,还有一个额外的好处,即能够以编程方式使用所提供的功能。