控制器(controller)

angular controller

  • 在angular中,controller是⼀一个javascript 函数(type/class),被⽤用作扩展除了root scope在外的angularscope的实例。

  • 也可以通过module.controller(name, constructor)

  • @see $controllerProvider.register().

  • controller可以用作:

    设置scope对象的初始状态。

    增加行为到scope中。

正确的使用controller

  • controller不应该尝试做太多的事情。它应该仅仅包含单个视图所需要的业务逻辑

  • 保持Controller的简单性,常见办法是抽出那些不属于controller的⼯工作到service中,在controller通过依赖注入来使用这些service

不要在Controller中做以下的事情:

  1. 任何类型的DOM操作 - controller应该仅仅包含业务逻辑,任何表现逻辑放到controller中,大大地影响了应用逻辑的可测试性。angular为了自动操作(更新)DOM,提供的数据绑定。如果希望执行我们自定义的DOM操作,可以把表现逻辑抽取到directive中。

  2. Input formatting(输入格式化) - 使用angular form controls 代替。

  3. Output filtering (输出格式化过滤) - 使⽤用angular filters 代替。

  4. 执⾏行⽆无状态或有状态的、controller共享的代码 - 使用angular services 代替。

Last updated