angularjs笔记
  • Introduction
  • 依赖注入
  • 作用域
  • 数据绑定
    • 控制器->模板->控制器->模板
  • 多个控制器
  • $scope对象
    • $apply方法、$digest方法
    • $watch方法
    • 示例:购物车
  • 模块和控制器
  • $provide对象的provider、factory、service方法
    • 多个控制器内共享数据
  • 过滤器(Filters)
    • number、currency、date
    • limitTo、lowercase、uppercase
    • filter、orderBy、json
    • 示例:产品列表
    • 自定义过滤器
  • 控制器(controller)
    • 显式和隐式依赖注入
  • 指令
    • Angular 内置指令
    • Angular 自定义指令
      • restrict、template、replace属性
      • templateUrl属性
      • transclude、priority、terminal属性
      • compile && link属性
      • controller && controllAs属性
      • require属性
      • scope属性
  • Module里其他方法
    • constant、value、run方法
  • Form表单
    • 示例:注册页
  • XHR和服务器端的通信
    • $http
  • JavaScript基础
    • .isFunction是否为函数
  • 资料链接
  • 功能组件
    • Tooltip
    • CSV
  • 其他
    • $watchCollection
    • $controller 继承
    • 两个对象合并
    • 页面关闭
    • AngularJs 时间格式化处理
    • 数据的本地存储
    • 页面的URL
Powered by GitBook
On this page
  • angular controller
  • 正确的使用controller

Was this helpful?

控制器(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 代替。

Previous自定义过滤器Next显式和隐式依赖注入

Last updated 6 years ago

Was this helpful?