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 相关文章推荐
通过Unicode转义序列来加密,按你说的可以算是混淆吧
May 06 Javascript
$.format,jquery.format 使用说明
Jul 13 Javascript
editable.js 基于jquery的表格的编辑插件
Oct 24 Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
解决JS浮点数运算出现Bug的方法
Mar 12 Javascript
JavaScript实现弹出子窗口并传值给父窗口
Dec 18 Javascript
全面解析多种Bootstrap图片轮播效果
May 27 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
手淘flexible.js框架使用和源代码讲解小结
Oct 15 Javascript
微信小程序新闻网站详情页实例代码
Jan 10 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 Javascript
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
Php注入点构造代码
2008/06/14 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
ThinkPHP写第一个模块应用
2012/02/20 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
基于layui轮播图满屏是高度自适应的解决方法
2019/09/16 Javascript
动态创建类实例代码
2009/10/07 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
python try except 捕获所有异常的实例
2018/10/18 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
python字典排序的方法
2019/10/12 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
详解Python的三种拷贝方式
2020/02/11 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
个性与发展自我评价
2014/02/11 职场文书
超市员工辞职信范文
2015/05/12 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
教师师德承诺书2016
2016/03/25 职场文书
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python