AngularJS--ngRoute模块

ngRoute

  使用步骤:

  (1)创建index.html,引入css/js,声明ngView

  (2)创建模板页面

  (3)创建模块,配置路由字典

    module.config(function($routeProvider){

             $routeProvider.

when('/start', {templateUrl: 'xxx.html'})

})

  (4)测试:  http://IP/index.html#/start

1.ngAnimate模块的使用

  Angular本身没有提供任何动画效果,但ngAnimate模块提供了一些“动画钩子(hooks)”,可以钩住用户自定义JS(jQuery.animate())、Transition、Keyframes动画效果。

  ngAnimate模块为下述指令提供的动画钩子:ngRepeat, ngInclude, ngIf, ngSwitch, ngShow, ngHide, ngView and ngClass。

演示:使用ngAnimate提供的动画钩子调用自定义的Transition动画效果。

(1)引入angular.js、angular-animate.js

(2)自定义模块声明依赖ngAnimate模块,相关指令就会自动生成动画钩子

(3)针对动画钩子编写Transition动画

   

    /*要离开的元素动画开始时的样式*/

    .page.ng-leave {

      left: 0;

      opacity: 1;

    }

    /*要离开的元素动画结束时的样式*/

    .page.ng-leave.ng-leave-active {

      left: -100%;

      opacity: 0;

    }

    /*要进入的元素动画开始时的样式*/

    .page.ng-enter {

      left: 100%;

      opacity: 0;

    }

    /*要进入的元素动画结束时的样式*/

    .page.ng-enter.ng-enter-active {

      left: 0;

      opacity: 1;

    }

2.补充:如何实现页面包含

  项目中,习惯把多个页面中完全一样的内容,单独提取出来作为一个独立的文件(如header.html、footer.html),凡是需要此文件的页面,引入该页面即可。页面包含可以采用多种方案:

  (1)利用Web服务器的SSI命令:客户端请求一个页面,服务器一次返回多个页面——需要修改Web服务器配置文件。

  (2)使用服务器端动态语言提供的页面包含函数:如PHP:

include('header.php');

....echo '主体';

include('footer.php');

客户端请求一个页面,服务器返回多个PHP页面组合后的一个页面。

  (3)在客户端使用AJAX技术:先加载一个页面的主体内容,加载完成后,再去请求header.html、footer.html放到空容器中

<div id="header"></div>

<main>XXXXXXXX</main>

<div id="footer"></div>

-----------------------------------------

$.ready(function(){

$('#header').load('header.html');

$('#footer').load('footer.html');

})

    提示:AngularJS中ng模块提供了一个指令:ngInclude,已经实现了方法3。

<div ng-include=" 'tpl/header.html' "></div>

面试题:说出下面几段代码运行后的效果:

View:  

    <p>{{count}}</p>

Controller:

    $scope.count=0;

    setInterval(function(){

      $scope.count++;

    }, 1000)

View:  

    <p>{{count}}</p>

Controller:

    $scope.count=0;

    $interval(function(){

      $scope.count++;

    }, 1000)

View:  

    <p>{{count}}</p>

Controller:

    $scope.count=0;

    setInterval(function(){

      $scope.count++;

      $scope.$digest( );

    }, 1000)

View:  

    <p>{{count}}</p>

Controller:

    $scope.count=0;

    setInterval(function(){

      $scope.count++;

      $scope.$apply( );

    }, 1000)

 View:  

    <p>COUNT1: {{count1}}</p>

    <p>COUNT2: {{count2}}</p>

Controller:

    $scope.count1=0;

    $scope.count2=0;

    setInterval(function(){

      $scope.count1++;

    }, 1000)

    $interval(function(){

      $scope.count2++;

    }, 1000)

View:  

    <p>COUNT1: {{count1}}</p>

    <p>COUNT2: {{count2}}</p>

Controller:

    $scope.count1=0;

    $scope.count2=0;

    setInterval(function(){

      $scope.count1++;

    }, 1000)

    $interval(function(){

      //$scope.count2++;

    }, 1000)

原文地址:https://www.cnblogs.com/baiyanfeng/p/5042918.html