Part 16 ng include directive in AngularJS

来源:http://www.cnblogs.com/gester/archive/2016/04/24/5426150.html
-Advertisement-
Play Games

ng-include directive is used to embed an HTML page into another HTML page. This technique is extremely useful when you want to reuse a specific view i ...


ng-include directive is used to embed an HTML page into another HTML page. This technique is extremely useful when you want to reuse a specific view in multiple pages in your application. 

The value of ng-include directive can be the name of the HTML page that you want to reuse or a property on the $scope object that points to the reusable HTML page.

EmployeeList.html : This is the HTML page that we intend to reuse on multiple HTML pages

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Gender</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="employee in employees">
            <td> {{ employee.name }} </td>
            <td> {{ employee.gender}} </td>
            <td> {{ employee.salary}} </td>
        </tr>
    </tbody>
</table>

Script.js : 

var app = angular
        .module("myModule", [])
        .controller("myController", function ($scope) { 
            var employees = [
                { name: "Ben", gender: "Male", salary: 55000 },
                { name: "Sara", gender: "Female", salary: 68000 },
                { name: "Mark", gender: "Male", salary: 57000 },
                { name: "Pam", gender: "Female", salary: 53000 },
                { name: "Todd", gender: "Male", salary: 60000 }
            ];
            $scope.employees = employees;
        });

HTMLPage1.html : This is the HTML page where we want to reuse EmployeeList.html. Notice that we are using ng-include directive and the value for it is the name of the HTML file that we want to reuse.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/angular.js"></script>
    <script src="Scripts/Script.js"></script>
    <link href="Styles.css" rel="stylesheet" />
</head>
<body ng-app="myModule">
    <div ng-controller="myController">
        <div ng-include="'EmployeeList.html'">
        </div>
    </div>
</body>
</html>

In this example, we have specified the name of the HTML file in the view. You can also have a property attached to the $scope object that points to the HTML file that you want to reuse , and use that property with ng-include directive. Here are the changes required to use a model property with ng-include directive.

Script.js : Notice, in the controller function we have employeeList property attached to the $scope object. This property points to the EmployeeList.html file that we want to reuse.

var app = angular
        .module("myModule", [])
        .controller("myController", function ($scope) {
 
            var employees = [
                { name: "Ben", gender: "Male", salary: 55000 },
                { name: "Sara", gender: "Female", salary: 68000 },
                { name: "Mark", gender: "Male", salary: 57000 },
                { name: "Pam", gender: "Female", salary: 53000 },
                { name: "Todd", gender: "Male", salary: 60000 }
            ];
 
            $scope.employees = employees;
            $scope.employeeList = "EmployeeList.html";
        });

HTMLPage1.html : Set the property employeeList that you have attached to the $scope object, as the value for ng-include directive

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/angular.js"></script>
    <script src="Scripts/Script.js"></script>
    <link href="Styles.css" rel="stylesheet" />
</head>
<body ng-app="myModule">
    <div ng-controller="myController">
        <div ng-include="employeeList"></div>
    </div>
</body>
</html>

Example : Create an HTML page with a dropdownlist that allows the user to select the view - Table or List. Depending on the selection we want to load the respective HTML page into the current HTML page i.e HTMLPage1.html

If the user selects Table from the dropdownlist, the employee data should be presented using a Table
ng-include example angularjs
If the user selects List from the dropdownlist, the employee data should be presented using an unordered list
angularjs ng include example
EmployeeTable.html : This HTML page presents the employee data using a table element

<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Gender</th>
            <th>Salary</th>
        </tr>
    </thead>
    <tbody>
        <tr ng-repeat="employee in employees">
            <td> {{ employee.name }} </td>
            <td> {{ employee.gender}} </td>
            <td> {{ employee.salary}} </td>
        </tr>
    </tbody>
</table>

EmployeeList.html : This HTML page presents the employee data using 2 unordered list elements

<ul ng-repeat="employee in employees">
    <li>
        {{employee.name}}
        <ul>
            <li>{{employee.gender}}</li>
            <li>{{employee.salary}}</li>
        </ul>
    </li>
</ul>

Script.js : The controller function attaches employeeView property to the $scope object and sets it to EmployeeTable.html. This means when the page is initially loaded the employee data will be presented using a table.

var app = angular
        .module("myModule", [])
        .controller("myController", function ($scope) {
 
            var employees = [
                { name: "Ben", gender: "Male", salary: 55000 },
                { name: "Sara", gender: "Female", salary: 68000 },
                { name: "Mark", gender: "Male", salary: 57000 },
                { name: "Pam", gender: "Female", salary: 53000 },
                { name: "Todd", gender: "Male", salary: 60000 }
            ];
 
            $scope.employees = employees;
            $scope.employeeView = "EmployeeTable.html";
        });

HTMLPage1.html : This HTML page loads either the EmployeeTable.html or EmployeeList.html page depending on the item the user has selected from the dropdownlist.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/angular.js"></script>
    <script src="Scripts/Script.js"></script>
    <link href="Styles.css" rel="stylesheet" />
</head>
<body ng-app="myModule">
    <div ng-controller="myController">
        Select View :
        <select ng-model="employeeView">
            <option value="EmployeeTable.html">Table</option>
            <option value="EmployeeList.html">List</option>
        </select>
        <br /><br />
        <div ng-include="employeeView">
        </div>
    </div>
</body>
</html>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 學習要點: 1.路徑組件 2.分頁組件 3.標簽組件 4.徽章組件 主講教師:李炎恢 本節課我們主要學習一下 Bootstrap 的四個組件功能:路徑組件、分頁組件、標簽組件和徽章組件。 一.路徑組件 路徑組件也叫做麵包屑導航。 //麵包屑導航 二.分頁組件 分頁組件可以提供帶有展示頁面的功能。 / ...
  • 學習要點: 1.輸入框組件 2.導航組件 3.導航條組件 主講教師:李炎恢 本節課我們主要學習一下Bootstrap的兩個個組件功能: 輸入框組件和導航導航條組件。 一.輸入框組件 文本輸入框就是可以在<input>元素前後加上文字或按鈕,可以實現對錶單控制項的擴展。 //在左側添加文字 //在右側添 ...
  • 學習要點: 1.小圖標組件 2.下拉菜單組件 3.按鈕組組件 4.按鈕式下拉菜單 主講教師:李炎恢 本節課我們主要學習一下 Bootstrap 的三個組件功能:小圖標組件、下拉菜單組件和各種按鈕組件。 一.小圖標組件 Bootstrap 提供了免費的 263 個小圖標(數了兩次),具體可以參考中文官 ...
  • 學習要點: 1.輔組類 2.響應式工具 主講教師:李炎恢 本節課我們主要學習一下 Bootstrap 的輔組類和響應式工具, 輔助類提供了一組類來輔組頁面設計,而響應式工具則利用媒體查詢顯示或隱藏某些內容。 一.輔助類 Bootstrap 在佈局方面提供了一些細小的輔組樣式,用於文字顏色以及背景色的 ...
  • 學習要點: 1.移動設備優先 2.佈局容器 3.柵格系統 主講教師:李炎恢 本節課我們主要學習一下 Bootstrap 的柵格系統,提供了一套響應式、移動設備優先的流式柵格系統。 一.移動設備優先 在 HTML5 的項目中,我們做了移動端的項目。它有一份非常重要的 meta,用於設置屏幕和設備等寬以 ...
  • In Angular there are several built in services. $http service is one of them. In this video, we will discuss another built in service, $log. It is als ...
  • Here is what we want to do1. Create an ASP.NET Web service. This web service retrieves the data from SQL Server database table, returns it in JSON for ...
  • 學習要點: 1.表單 2.圖片 主講教師:李炎恢 本節課我們主要學習一下 Bootstrap 表單和圖片功能,通過內置的 CSS 定義,顯示各種豐富的效果。 一.表單 Bootstrap 提供了一些豐富的表單樣式供開發者使用。 1.基本格式 //實現基本的表單樣式 註:只有正確設置了輸入框的 typ ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...