zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    密钥学习
    MAP的计算方法(简单总结)
    模型量化技术(入门级理解,不涉及复杂公式和深入的原理)
    实现java非阻塞http请求的两种方式
    PIP安装软件报错:“ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443)”
    Fiddler弱网测试
    Fiddler断点应用
    Fiddler基本介绍
    Fiddler安装及证书配置教程(Windows)
    URL统一资源定位符
  • 原文地址:https://www.cnblogs.com/baiyanfeng/p/5042918.html
Copyright © 2011-2022 走看看