AngularJs之MVC

   MVC 起源是在1979年,Trygve Reenskaug第一次正式提出了MVC模式。

   MVC分别是Model:数据模型层:View;视图层,负责展示;Controller:业务逻辑,这个模式的好处是职责清晰,代码模块化。

    问题来了,为什么需要MVC?

    1.代码规模越来越大,切分职责时大势所趋。

    2.为了复用:很多逻辑时一模一样的。

    3.为了后期维护方便:修改一块功能不影响其他功能。

总结:MVC只是手段,终极目标是模块化和复用。

   在MVC中,Controller使用过程的注意点:

    1.不要试图去复用Controller一个控制器一般只负责一小块视图

     2.不要在Controller中操作DOM,这不是控制器的职责。(将DOM封装在指令里面)

    3.不要在Controller里面做数据格式化,ng有很好用的表单控件。

    4.不要在Controller里面做数据过滤操作,ng有$filter服务。

    5.一般来说,Controller是不会互相调用的,控制器之间的交互会通过事件进行。

   AngularJS的MVC是借助于$scope实现的!!!那么什么是$scope???

  $scope是一个POJO(Plain Old JavaScript Object)

  $scope提供了一些工具方法$watch()/$apply()

  $scope是表达式的执行环境(即作用域)

  $scope是一个树型结构,与DOM标签平行

 子$scope对象会继承父$scope上的属性与方法

 每一个Angular应用只有一个根$scope对象(一般位于ng-app上)

 $scope可以传播事件,类似DOM事件,可以向上也可以向下

 $scope不仅时MVC基础,也是实现双向数据绑定的基础

 可以用angular.element($0).scope()进行调试

猜你喜欢

转载自dingliang-321.iteye.com/blog/2199659