(做公司老项目,没办法,头大)

  1. $scope.$watch(watchItems,watchAction[,deepWatch]):监视数据的变化
     ① watchItems(字符串):
      ① 如果是单一变量:直接’变量名‘即可
      ② 如果是多个变量:可用‘+‘连接变量,‘变量1 + 变量2’
      ③ 如果是数组,对象:可用’user.name‘监听其中属性,也可直接监听‘user’,默认浅层监听
    ② watchAction(函数):
     发生变化的时候触发此函数
    ③ deepWatch(布尔值):
     true为开启深层监听,默认为false不开启

  2. $scope.$apply([t]):强制刷新数据,更新界面
    大部分情况会自动调用,会自动用apply包裹,且apply()中不能使用apply()如果使用会报错,所以只有在少数没更新的情况才使用
    例,在定时其中修改state,但页面没有更新:
     setTimeout(function () {
      $scope.message =“Timeout called!”;
     }, 2000);
     此时可写成:
     setTimeout(function () {
       $scope.$apply(function () {
        $scope.message =“Timeout called!”;
       });
      }, 2000);

    setTimeout(function () {
    $scope.message =“Timeout called!”;
    $scope.$apply();
    }, 2000);

    注:为了保险可以先判断$$phase,它是angluar内部使用的状态标志位,用于标识当前是否处于digest状态,例

    if (!$scope.$$phase) {
     $scope.$apply();
    }
    注:类似的还有$digest(),只不过apply是会更新全部,而

  3. 作用域定义,模块注入:var app = angular.module(‘myApp’, [‘ui.bootstrap’]);

  4. 加载配置,拦截器与路由的配置一般在其中:app.config(funtion(){…})

  5. 自定义指令 :app.directive(‘xxx’, function(){…});

  6. 定义控制器 :app.controller(‘xxx’, function($scope){…});

  7. 自定义过滤器:app.filter(‘xxx’, function(){…});

  8. 自定义服务(数据访问,逻辑处理):app.service(‘xxx’, function(){…})
    (还有很多内置服务,$location,$http,$timeout,$interval等等)
    (官方认为组件不应该直接获取或保存数据, 它们应该聚焦于展示数据,而把数据访问的职责委托给某个服务。而服务就充当着数据访问,逻辑处理的功能。把组件和服务区分开,以提高模块性和复用性)

  9. 依赖注入:是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分
    AngularJS 提供很好的依赖注入机制,以下5个核心组件用来作为依赖注入:
    ① value
    ② factory
    ③ service
    ④ provider
    ⑤ constant

  10. angular路由样例:
    <body ng-app=‘routingDemoApp’>
     <h2>AngularJS 路由应用</h2>
     <ul>
      <li><a href=“#!/”>首页</a></li>
      <li><a href=“#!/computers”>电脑</a></li>
      <li><a href=“#!/printers”>打印机</a></li>
      <li><a href=“#!/blabla”>其他</a></li>
     </ul>
     <div ng-view>
     <script>
      angular.module(‘routingDemoApp’,[‘ngRoute’])
      .config([‘$routeProvider’, function($routeProvider){
       $routeProvider
       .when(‘/’,{template:‘这是首页页面’})
       .when(‘/computers’,{template:‘这是电脑分类页面’})
       .when(‘/printers’,{template:‘这是打印机页面’})
       .otherwise({redirectTo:‘/’});
      }]);
     </script>
    </body>

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐