• 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)

  • 相关阅读:
    Python—将py文件编译成so文件
    Python—网络通信编程之套接字基本原理
    Python—IO多路复用之epoll总结
    Python—IO多路复用之poll总结
    Python—IO多路复用之select总结
    希尔排序
    直接插入排序
    冒泡排序
    选择排序(C++,Java,Python实现)
    二叉搜索树的相关功能的实现
  • 原文地址:https://www.cnblogs.com/baiyanfeng/p/5042918.html
Copyright © 2020-2023  润新知