AngularJS 包含

使用 AngularJS,可以从外部文件中包含 HTML。


AngularJS 包含

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

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script>
  4. <body ng-app="">
  5. <div ng-include="'myFile.htm'"></div>
  6. </body>
  7. </html>

包含 AngularJS 代码

ng-include 指令中包含的 HTML 文件也可以包含 AngularJS 代码:

myTable.htm:
  1. <table>
  2. <tr ng-repeat="x in names">
  3. <td>{{ x.Name }}</td>
  4. <td>{{ x.Country }}</td>
  5. </tr>
  6. </table>

在网页中包含文件 “myTable.htm”,所有 AngularJS 代码都将被执行,甚至包括包含文件中的代码:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script>
  4. <body>
  5. <div ng-app="myApp" ng-controller="customersCtrl">
  6. <div ng-include="'myTable.htm'"></div>
  7. </div>
  8. <script>
  9. var app = angular.module('myApp', []);
  10. app.controller('customersCtrl', function($scope, $http) {
  11. $http.get("customers.php").then(function (response) {
  12. $scope.names = response.data.records;
  13. });
  14. });
  15. </script>
  16. <p>该表的 HTML 和 AngularJS 代码位于文件 "myTable.htm" 中。</p>
  17. </body>
  18. </html>

包含跨域

默认情况下,ng-include 指令不允许包含来自其他域的文件。

要包含来自其他域的文件,可以在应用程序的配置功能中添加合法文件和/或域的白名单:

Example:
  1. <!DOCTYPE html>
  2. <html>
  3. <script src="https://cdn.bootcdn.net/ajax/libs/angular.js/1.8.2/angular.min.js"></script>
  4. <body ng-app="myApp">
  5. <div ng-include="'https://cankaoshouce.com/angular_include.php'"></div>
  6. <script>
  7. var app = angular.module('myApp', [])
  8. app.config(function($sceDelegateProvider) {
  9. $sceDelegateProvider.resourceUrlWhitelist([
  10. 'https://cankaoshouce.com/**'
  11. ]);
  12. });
  13. </script>
  14. </body>
  15. </html>

确保目标服务器允许跨域文件访问。

分类导航