AngularJS 包含


在 AngularJS 中,你可以在 HTML 中包含 HTML 文件。


在 HTML 中包含 HTML 文件

在 HTML 中,目前还不支持包含 HTML 文件的功能。


服务端包含

大多服务端脚本都支持包含文件功能 (SSI: Server Side Includes)。

使用 SSI, 你可在 HTML 中包含 HTML 文件,并发送到客户端浏览器。

  1. <?php require("navigation.php");?>

客户端包含

通过 JavaScript 有很多种方式可以在 HTML 中包含 HTML 文件。

通常我们使用 http 请求 (AJAX) 从服务端获取数据,返回的数据我们可以通过 使用 innerHTML 写入到 HTML 元素中。


AngularJS 包含

使用 AngularJS, 你可以使用 ng-include 指令来包含 HTML 内容:

  1. <body>
  2. <div class="container">
  3. <div ng-include="'myUsers_List.html'"></div>
  4. <div ng-include="'myUsers_Form.html'"></div>
  5. </div>
  6. </body>
 

步骤如下:


步骤 1: 创建 HTML 列表

myUsers_List.html

  1. <h3>Users</h3>
  2. <table class="table table-striped">
  3. <thead><tr>
  4. <th>Edit</th>
  5. <th>FirstName</th>
  6. <th>LastName</th>
  7. </tr></thead>
  8. <tbody><tr ng-repeat="user in users">
  9. <td>
  10. <button class="btn" ng-click="editUser(user.id)">
  11. <span class="glyphicon glyphicon-pencil"></span>&nbsp;&nbsp;Edit
  12. </button>
  13. </td>
  14. <td>{{ user.fName }}</td>
  15. <td>{{ user.lName }}</td>
  16. </tr></tbody>
  17. </table>

步骤 2: 创建 HTML 表单

myUsers_Form.html

  1. <button class="btn btn-success" ng-click="editUser('new')">
  2. <span class="glyphicon glyphicon-user"></span>CreateNewUser
  3. </button>
  4. <hr>
  5. <h3 ng-show="edit">CreateNewUser:</h3>
  6. <h3 ng-hide="edit">EditUser:</h3>
  7. <form class="form-horizontal">
  8. <div class="form-group">
  9. <label class="col-sm-2 control-label">FirstName:</label>
  10. <div class="col-sm-10">
  11. <input type="text" ng-model="fName" ng-disabled="!edit" placeholder="First Name">
  12. </div>
  13. </div>
  14. <div class="form-group">
  15. <label class="col-sm-2 control-label">LastName:</label>
  16. <div class="col-sm-10">
  17. <input type="text" ng-model="lName" ng-disabled="!edit" placeholder="Last Name">
  18. </div>
  19. </div>
  20. <div class="form-group">
  21. <label class="col-sm-2 control-label">Password:</label>
  22. <div class="col-sm-10">
  23. <input type="password" ng-model="passw1" placeholder="Password">
  24. </div>
  25. </div>
  26. <div class="form-group">
  27. <label class="col-sm-2 control-label">Repeat:</label>
  28. <div class="col-sm-10">
  29. <input type="password" ng-model="passw2" placeholder="Repeat Password">
  30. </div>
  31. </div>
  32. </form>
  33. <hr>
  34. <button class="btn btn-success" ng-disabled="error || incomplete">
  35. <span class="glyphicon glyphicon-save"></span>SaveChanges
  36. </button>

步骤 3: 创建控制器

myUsers.js

  1. angular.module('myApp',[]).controller('userCtrl',function($scope){
  2. $scope.fName ='';
  3. $scope.lName ='';
  4. $scope.passw1 ='';
  5. $scope.passw2 ='';
  6. $scope.users =[
  7. {id:1, fName:'Hege',lName:"Pege"},
  8. {id:2, fName:'Kim',lName:"Pim"},
  9. {id:3, fName:'Sal',lName:"Smith"},
  10. {id:4, fName:'Jack',lName:"Jones"},
  11. {id:5, fName:'John',lName:"Doe"},
  12. {id:6, fName:'Peter',lName:"Pan"}
  13. ];
  14. $scope.edit =true;
  15. $scope.error =false;
  16. $scope.incomplete =false;
  17. $scope.editUser =function(id){
  18. if(id =='new'){
  19. $scope.edit =true;
  20. $scope.incomplete =true;
  21. $scope.fName ='';
  22. $scope.lName ='';
  23. }else{
  24. $scope.edit =false;
  25. $scope.fName = $scope.users[id-1].fName;
  26. $scope.lName = $scope.users[id-1].lName;
  27. }
  28. };
  29. $scope.$watch('passw1',function(){$scope.test();});
  30. $scope.$watch('passw2',function(){$scope.test();});
  31. $scope.$watch('fName',function(){$scope.test();});
  32. $scope.$watch('lName',function(){$scope.test();});
  33. $scope.test =function(){
  34. if($scope.passw1 !== $scope.passw2){
  35. $scope.error =true;
  36. }else{
  37. $scope.error =false;
  38. }
  39. $scope.incomplete =false;
  40. if($scope.edit &&(!$scope.fName.length ||
  41. !$scope.lName.length ||
  42. !$scope.passw1.length ||!$scope.passw2.length)){
  43. $scope.incomplete =true;
  44. }
  45. };
  46. })
 

步骤 4: 创建主页

myUsers.html

 
  1. <!DOCTYPE html>
  2. <html>
  3. <link rel="stylesheet" href ="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  4. <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
  5. <body ng-app="myApp" ng-controller="userCtrl">
  6. <div class="container">
  7. <div ng-include="'myUsers_List.html'"></div>
  8. <div ng-include="'myUsers_Form.html'"></div>
  9. </div>
  10. <script src="myUsers.js"></script>
  11. </body>
  12. </html>
结果:
 

【18】AngularJS 包含的更多相关文章

  1. AngularJS 包含

    在 AngularJS 中,你可以在 HTML 中包含 HTML 文件. 在 HTML 中,目前还不支持包含 HTML 文件的功能. 大多服务端脚本都支持包含文件功能 (SSI: Server Sid ...

  2. AngularJS包含

    1.在HTML中包含HTML文件:在HTML中,目前还不支持包含HTML文件的功能: 2.服务端包含:大多数服务端脚本都支持文件功能(SSI),使用SSI,你可以在HTML中包含HTML文件,并发送到 ...

  3. 18.angularJS服务

    转自:https://www.cnblogs.com/best/tag/Angular/ 服务 AngularJS功能最基本的组件之一是服务(Service).服务为你的应用提供基于任务的功能.服务可 ...

  4. AngularJS 包含HTML文件

    类似于python tornado的include方法,同样是可以在一个html文件中加载另外一个html文件,这样可以不用重复的写一些几乎不改变的代码. 首先创建两个文件,然后代码如下: <! ...

  5. 夺命雷公狗—angularjs—18—angularjs的事件

    对于一款前端框架,提起事件,很容易让人联想到DOM事件,比如说鼠标点击以及页面滚动等.但是我们这里说的angular中的事件和DOM事件并不是一个东西. 事件的发布 我们可以通过 $emit() 以及 ...

  6. AngularJS(13)-包含

    AngularJS 包含 使用 AngularJS, 你可以使用 ng-include 指令来包含 HTML 内容: 实例 <body> <div class="conta ...

  7. AngularJS:包含

    ylbtech-AngularJS:包含 1.返回顶部 1. AngularJS 包含 在 AngularJS 中,你可以在 HTML 中包含 HTML 文件. 在 HTML 中包含 HTML 文件 ...

  8. 2.1:你的第一个AngularJS App

    本章,带你体验一个简单的开发流程,将一个静态的使用模拟数据的应用,变成具有AngularJS特性的动态web应用.在6-8章,作者将展示如何创建一个更复杂,更真实的AngularJS应用. 1.准备项 ...

  9. AngularJs之九(ending......)

    今天继续angularJs,但也是最后一篇关于它的了,基础部分差不多也就这些,后续有机会再写它的提升部分. 今天要写的也是一个基础的选择列表: 一:使用ng-options,数组进行循环. <d ...

随机推荐

  1. 基于Flink的视频直播案例(下)

    目录 直播数字化运营 结果写入Elasticsearch 第二种思路 Flink实现总结 Elasticsearch部分 Kibana部分 直播数字化运营 业务目标 全站观看直播总人数以及走势 房间直 ...

  2. 为npm设置代理,解决网络问题

    为npm设置代理,解决网络问题 npm config set proxy=http://127.0.0.1:1080

  3. Rails5 View Document

    更新: 2017/06/11 更新: 2017/06/15 加粗,submit必须放在form_for内部 更新: 2017/06/23 对待完成的追加# TODO:                 ...

  4. bzoj [JSOI2010]Group 部落划分 Group【二分+并查集】

    我是zz吗这么简单都写错-- 一眼二分,然后判断的话是枚举点,然后计算这个点到已有联通块的最小距离,如果这个点到一些联通块的距离小于当前二分的val,则把这些联通块合并起来,这里用并查集维护,最后看这 ...

  5. 洛谷2019 3月月赛 T1

    题干 2019第一次月赛 我只有255pts T1还是比较水的... 海星 T1一道简单的模拟(就是有坑..导致很多人不能一次性AC 比如说我) _3个坑点 1.位数问题 2.-0 3.0... #i ...

  6. python自动化测试学习笔记-unittest参数化

    做接口测试的时候,当一个参数需要输入多个值的时候,就可以使用参数来实现: python中unittest单元测试,可以使用nose_parameterized来实现: 首先需要安装:pip  inst ...

  7. hdu5924Mr. Frog’s Problem

    Mr. Frog's Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  8. 安装Kali里的应用程序或软件包

    安装Kali里的应用程序或软件包 安装额外的软件是apt-get命令最基本的功能了,命令非常简单易懂.安装软件包的语法如下: apt-get install 软件包名 比如,安装图像编辑软件gimp, ...

  9. 由一维数组表示的N维数组实现(C++)

    工作中,经常需要表示多维数组(如二维矩阵),常见的做法是使用T **pArr: T **pArr = new T*[M];//创建二维数组[M][N] ;i<M;i++) { pArr[i] = ...

  10. Python之数据聚合与分组运算

    Python之数据聚合与分组运算 1. 关系型数据库方便对数据进行连接.过滤.转换和聚合. 2. Hadley Wickham创建了用于表示分组运算术语"split-apply-combin ...