之间的关系是什么?我不是问两者之间有什么区别,我想知道它们在组件的指令和控制器中是如何协同工作的。Angular 1.X控制器和指令
0
A
回答
2
我不确定为什么你对此表决不满意,因为我认为这是一个与角度1.x的不太清晰的方面有关的问题。
暴露指令的API
其中一个主要的原因,以建立与控制器的指令是揭露一个指令的API其他指令。一个很好的例子是ngModel
和ngModelController
。许多自定义指令都需要访问ngModel
,这些指令也在声明自定义指令的地方或上方声明。
{ require:'^ngModel' }
这实际上是说这个定制指令需要访问的ngModelController
可用API做额外的工作:你可以通过该指令定义看到这一点。例如,你想要一个指令在特定的ngModel上做一些自定义的分析或格式化。在我的应用程序中,我不断收到从服务器返回的日期字符串的错误。我创建这个自定义指令来处理错误和正确格式化字符串(这是BTW的CoffeeScript):
.directive 'dateString', [
()->
{
priority: 10
require: 'ngModel'
link: ($scope, elem, attrs, ngModel)->
ngModel.$formatters.push (val)-> new Date(val)
}
]
如果没有ngModelController
,我不会有机会获得API来添加一个新的格式化功能。
因此,总而言之,我们可能会创建指令控制器来为可能在同一UI元素上操作的其他指令提供API。
经典控制器角色
为了折角的精神和意图内,使用控制器暴露的API,模板比试图用一个jQuery实现更好的。换句话说,最好这样做:
指令w。控制器
controller: function($scope){
$scope.doSomething = function(){ ... }
},
template: '<div><button ng-click="doSomething()">Click Me</button></div>'
VS像这样
指令W上。 jquery-like的实现
link: function($scope, elem, attrs){
elem('button').bind('click', function(){ ... })
},
template: '<div><button>Click Me</button></div>'
相关问题
- 1. Angular指令和控制器
- 2. Angular 1.x指令范围
- 3. Angular JS指令特定的控制器和父控制器
- 4. Angular 1.x指令共享作用域与控制器的父亲
- 5. 在Angular 1.x中,如何从自定义指令访问控制器方法?
- 6. Angular 1.x指令与模板
- 7. Angular,browserify,指令控制器不可用
- 8. Angular 1.5 + TypeScript指令与控制器
- 9. Angular指令 - 需要从指令控制器访问所需的控制器
- 10. JavaScript Angular 1.5.x控制器
- 11. Angular指令 - 未找到控制器指令
- 12. AngularJS控制器 - 指令 - >从指令
- 13. 沟通指令/控制器和范围
- 14. Angular:通过控制器和指令通信
- 15. angular $ firebaseArrray:控制器和指令之间的区别
- 16. Angular中的指令和控制器之间的变量交换
- 17. 用jasmine和bindToController绑定angular指令属性到控制器true
- 18. MVC Spring AngularJS指令和控制器
- 19. 注入控制器指令
- 20. md-autocomplete Angular 1.x - 从父控制器绑定数据
- 21. 角度控制器和指令从控制器获取值到指令
- 22. Angular指令>动态控制器名称>插值控制器名称
- 23. Angular - 在子指令的控制器中获取父指令的控制器(不是链接功能)
- 24. 嵌套控制器和指令
- 25. 角度重用指令和控制器
- 26. AngularJS:指令和外部控制器
- 27. 指令和控制器通信
- 28. 指令控制器和正常控制器之间的区别
- 29. Angular指令加载指令:在控制器中使用未知提供程序
- 30. Angularjs控制器指令
这是不明确你的意思。组件*是*指令。 – estus