AngularJS - รวม

HTML ไม่สนับสนุนการฝังหน้า HTML ภายในหน้า HTML เพื่อให้สามารถใช้งานฟังก์ชันนี้ได้เราสามารถใช้หนึ่งในตัวเลือกต่อไปนี้ -

  • Using Ajax - โทรหาเซิร์ฟเวอร์เพื่อรับเพจ HTML ที่เกี่ยวข้องและตั้งค่าไว้ใน innerHTML ของการควบคุม HTML

  • Using Server Side Includes - JSP, PHP และเทคโนโลยีเซิร์ฟเวอร์ฝั่งเว็บอื่น ๆ สามารถรวมเพจ HTML ไว้ในเพจไดนามิก

การใช้ AngularJS เราสามารถฝังหน้า HTML ภายในหน้า HTML โดยใช้คำสั่ง ng-include

<div ng-app = "" ng-controller = "studentController">
   <div ng-include = "'main.htm'"></div>
   <div ng-include = "'subjects.htm'"></div>
</div>

ตัวอย่าง

tryAngularJS.htm

<html>
   <head>
      <title>Angular JS Includes</title>
      <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
      </script>
      
      <style>
         table, th , td {
            border: 1px solid grey;
            border-collapse: collapse;
            padding: 5px;
         }
         table tr:nth-child(odd) {
            background-color: #f2f2f2;
         }
         table tr:nth-child(even) {
            background-color: #ffffff;
         }
      </style>
   </head>
   
   <body>
      <h2>AngularJS Sample Application</h2>
      
      <div ng-app = "mainApp" ng-controller = "studentController">
         <div ng-include = "'/angularjs/src/include/main.htm'"></div>
         <div ng-include = "'/angularjs/src/include/subjects.htm'"></div>
      </div>
      
      <script>
         var mainApp = angular.module("mainApp", []);
         
         mainApp.controller('studentController', function($scope) {
            $scope.student = {
               firstName: "Mahesh",
               lastName: "Parashar",
               fees:500,
               
               subjects:[
                  {name:'Physics',marks:70},
                  {name:'Chemistry',marks:80},
                  {name:'Math',marks:65},
                  {name:'English',marks:75},
                  {name:'Hindi',marks:67}
               ],
               fullName: function() {
                  var studentObject;
                  studentObject = $scope.student;
                  return studentObject.firstName + " " + studentObject.lastName;
               }
            };
         });
      </script>
      
   </body>
</html>

main.htm

<table border = "0">
   <tr>
      <td>Enter first name:</td>
      <td><input type = "text" ng-model = "student.firstName"></td>
   </tr>
   
   <tr>
      <td>Enter last name: </td>
      <td><input type = "text" ng-model = "student.lastName"></td>
   </tr>
   
   <tr>
      <td>Name: </td>
      <td>{{student.fullName()}}</td>
   </tr>
</table>

subjects.htm

<p>Subjects:</p>
<table>
   <tr>
      <th>Name</th>
      <th>Marks</th>
   </tr>
   
   <tr ng-repeat = "subject in student.subjects">
      <td>{{ subject.name }}</td>
      <td>{{ subject.marks }}</td>
   </tr>
</table>

เอาต์พุต

ในการดำเนินการตัวอย่างนี้คุณต้องปรับใช้testAngularJS.htm, main.htmและsubjects.htmกับเว็บเซิร์ฟเวอร์ เปิดไฟล์testAngularJS.htmโดยใช้ URL ของเซิร์ฟเวอร์ของคุณในเว็บเบราว์เซอร์และดูผลลัพธ์