AngularJs-为什么像Angular strap和UI Bootstrap这样的指令使用提供者来构建他们的组件
AngularJs - Why directives like Angular-strap and UI-Bootstrap use providers to build their compotents
我计划构建我的第一个复杂指令,这是一个组件,允许用户裁剪和旋转提供的图像,并将其作为Blob或Base64字符串返回。我一直在研究其他人是如何做到这一点的,我使用Angular strap和UI Bootstrap作为指导,了解如何构建高效的指令和组织代码的方法。
让我感到困惑的是,像Modal和Alert这样的组件使用提供程序来构建组件并返回它,在指令中,它使用这样的提供程序在编译时生成内容,而像Tabs这样的其他组件则使用一个用于所有逻辑的单个控制器和一组使用这样的控制器在编译时构建的一个或多个指令和子指令的组合。
- 那么,为什么他们在某些组件上使用提供者方法,而在其他组件上使用控制器方法呢
- 在提供者内部构建所有逻辑比在控制器中构建所有逻辑有什么好处
我注意到的另一件事是,他们的指令通过数据属性接受选项,他们在编译时解析数据属性,为什么不使用指令范围来设置全局选项?
编写一个提供程序,然后在指令中使用它,还有一个额外的好处,即能够以编程方式使用所提供的功能。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 参数变量出现ngTable指令问题
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 使用每次都不同的transclude重复指令
- 打开一个模态并将其链接到AngularJS中的指令
- 从html创建一个指令,该指令按类名应用函数
- 将JSON对象传递给angular指令
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- JavaScript指令不能像我想象的那样工作
- AngularJs指令,该指令创建内部有数据对象的新指令
- AngularJS指令只识别双向绑定类型
- 从控制器继承了隔离的作用域以生成可重用的指令
- AngularJS指令出错-无法读取属性'编译'的未定义
- Angular指令在alertify setContent内容中不起作用
- 对父作用域的指令更新延迟了一步
- 指令的模板必须只有一个根元素:With restrict E&替换true
- AngularJS指令单元测试中未定义的函数
- 指令加载真的很长,检查加载时间的方法
- AngularJS指令,在元素后插入HTML
- AngularJs-为什么像Angular strap和UI Bootstrap这样的指令使用提供者来构建他们的组件