AngularJS 视图详解及示例代码


Posted in Javascript onAugust 17, 2016

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 视图详解及示例代码

以上就是对AngularJS 视图资料的整理,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
JQuery 返回布尔值Is()条件判断方法代码
May 14 Javascript
javascript正则表达式基础知识入门
Apr 20 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
JQuery validate插件Remote用法大全
May 15 Javascript
React实现点击删除列表中对应项
Jan 10 Javascript
assert()函数用法总结(推荐)
Jan 25 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 Javascript
js实现音频控制进度条功能
Apr 01 Javascript
react-native ListView下拉刷新上拉加载实现代码
Aug 03 Javascript
JS实现的数组去除重复数据算法小结
Nov 17 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 Javascript
详解Vue2的diff算法
Jan 06 Vue.js
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
Aug 17 #Javascript
AngularJS Ajax详解及示例代码
Aug 17 #Javascript
AngularJS包括详解及示例代码
Aug 17 #Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 #Javascript
AngularJS表单详解及示例代码
Aug 17 #Javascript
AngularJS模块详解及示例代码
Aug 17 #Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 #Javascript
You might like
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
JS解析XML实例分析
2015/01/30 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
JS变量及其作用域
2017/03/29 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
Python统计单词出现的次数
2018/04/04 Python
python读取xlsx的方法
2018/12/25 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
Python dict的常用方法示例代码
2020/06/23 Python
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
世界经理人咨询有限公司面试
2014/09/23 面试题
环保标语口号
2014/06/13 职场文书
毕业大学生自荐信
2014/06/17 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
建党伟业的观后感
2015/06/01 职场文书