简介AngularJS的视图功能应用


Posted in Javascript onJune 17, 2015

 AngularJS支持通过在单个页面上的多个视图的单页应用。要做到这一点AngularJS提供ng-view 和 ng-template指令,以及 $routeProvider 服务。
ng-view

ng-view 标记只是简单地创建一个占位符,是一个相应的视图(HTML或ng-template视图),可以根据配置来放置。
使用

定义一个div与ng-view在主模块中。

<div ng-app="mainApp">
...
  <div ng-view></div>

</div>

ng-template

ng-template 指令是用来创建使用script标签的HTML视图。它包含一个用于由$routeProvider映射控制器视图“id”属性。
使用

定义类型作为主模块中 ng-template 的脚本块。

<div ng-app="mainApp">
...
  <script type="text/ng-template" id="addStudent.html">
   <h2> Add Student </h2>
     {{message}}
  </script>

</div>

$routeProvider

$routeProvider是组网址的配置,将它们映射相应的HTML页面或 ng-template,并附加一个控制器使用相同键的服务。
使用

定义类型作为主模块中 ng-template 的脚本块。

<div ng-app="mainApp">
...
  <script type="text/ng-template" id="addStudent.html">
   <h2> Add Student </h2>
     {{message}}
  </script>

</div>

 

使用

定义主模块的脚本块,并设置路由配置。

var mainApp = angular.module("mainApp", ['ngRoute']);
   
   mainApp.config(['$routeProvider',
     function($routeProvider) {
      $routeProvider.
        when('/addStudent', {
         templateUrl: 'addStudent.html',
         controller: 'AddStudentController'
        }).
        when('/viewStudents', {
         templateUrl: 'viewStudents.html',
         controller: 'ViewStudentsController'
        }).
        otherwise({
         redirectTo: '/addStudent'
        });
     }]);

   

以下是在上面的例子中需要考虑的重要问题

  •     $routeProvider被定义为使用关键字作为'$routeProvider“下mainApp模块的配置功能;
  •     $routeProvider当定义了URL“/addStudent”映射到“addStudent.html”。 addStudent.html应存在于相同的路径主要的html 页面。如果htm页面没有定义,那么ng-template被id=“addStudent.html”使用。我们已经使用了ng-template;
  •     “otherwise”是用来设置的默认视图;
  •     “conlloer”是用来设置该视图对应的控制器;

例子

下面的例子将展示上述所有指令。
testAngularJS.html

<html>
<head>
  <title>Angular JS Views</title>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.min.js"></script>
</head>
<body>
  <h2>AngularJS Sample Application</h2>
  <div ng-app="mainApp">
   <p><a href="#addStudent">Add Student</a></p>
   <p><a href="#viewStudents">View Students</a></p>
   <div ng-view></div>
   <script type="text/ng-template" id="addStudent.html">
     <h2> Add Student </h2>
     {{message}}
   </script>
   <script type="text/ng-template" id="viewStudents.html">
     <h2> View Students </h2>   
     {{message}}
   </script> 
  </div>

  <script>
   var mainApp = angular.module("mainApp", ['ngRoute']);
   
   mainApp.config(['$routeProvider',
     function($routeProvider) {
      $routeProvider.
        when('/addStudent', {
         templateUrl: 'addStudent.html',
         controller: 'AddStudentController'
        }).
        when('/viewStudents', {
         templateUrl: 'viewStudents.html',
         controller: 'ViewStudentsController'
        }).
        otherwise({
         redirectTo: '/addStudent'
        });
     }]);

     mainApp.controller('AddStudentController', function($scope) {
      $scope.message = "This page will be used to display add student form";
     });

     mainApp.controller('ViewStudentsController', function($scope) {
      $scope.message = "This page will be used to display all the students";
     });
  </script>
</body>
</html>

结果

在Web浏览器中打开textAngularJS.html。看到结果如下:

简介AngularJS的视图功能应用

Javascript 相关文章推荐
JavaScript 学习 - 提高篇
Feb 02 Javascript
javascript 最常用的10个自定义函数[推荐]
Dec 26 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 Javascript
js弹窗返回值详解(window.open方式)
Jan 11 Javascript
JS动画效果打开、关闭层的实现方法
May 09 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
JavaScript获取URL中参数querystring的方法详解
Oct 11 Javascript
laydate日历控件使用方法详解
Nov 20 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
vue实现设置载入动画和初始化页面动画效果
Oct 28 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
Nov 07 Javascript
ES2020让代码更优美的运算符 (?.) (??)
Jan 04 Javascript
在AngularJS中使用AJAX的方法
Jun 17 #Javascript
使用AngularJS来实现HTML页面嵌套的方法
Jun 17 #Javascript
AngularJS的表单使用详解
Jun 17 #Javascript
举例讲解AngularJS中的模块
Jun 17 #Javascript
简介AngularJS的HTML DOM支持情况
Jun 17 #Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 #Javascript
JavaScript AOP编程实例
Jun 16 #Javascript
You might like
php下拉选项的批量操作的实现代码
2013/10/14 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
教你学会使用Python正则表达式
2017/09/07 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
django框架auth模块用法实例详解
2019/12/10 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
大码女装:Ulla Popken
2019/08/06 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
挂职思想汇报
2013/12/31 职场文书
料理师求职信
2014/01/30 职场文书
党支部换届选举方案
2014/05/08 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
应届毕业生自荐信
2015/03/04 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
运动会100米广播稿
2015/08/19 职场文书
初中语文教师研修日志
2015/11/13 职场文书
MySQL 数据库范式化设计理论
2022/04/22 MySQL