AngularJS 指令

简介:

AngularJS 通过被称为 指令 的新属性来扩展 HTML。并且通过内置的指令来为应用添加功能。另外,AngularJS 允许我们自定义指令。
AngularJS为我们提供了很多指令,在前面我们也见到了一些,如:ng-app、’ng-bind’等。AngularJS提供的指令我们可以查阅官网的文档,这里就不一一列举了,下面介绍几个比较常用的指令的用法,其他指令的使用也大同小异。
AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-。

ng-app 指令

在之前的代码中,我们可以发现每一个AngularJS的代码里都含有ng-app指令。ng-app 指令定义了 AngularJS 应用程序的 根元素。在网页加载完毕时会自动引导(自动初始化)应用程序。

ng-init 指令

ng-init 指令为 AngularJS 应用程序定义了 初始值。通常情况下,我们不使用 ng-init。我们将使用一个控制器或模块来代替它。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>AngularJS</title>
        <script type="text/javascript" src="js/angular.min.js"></script>
    </head>

    <body ng-app="" ng-init="color=['red', 'blue', 'green']">
        <div>
            {{color[1]}}
        </div>
    </body>

</html>
AI 代码解读

这是之前的一个示例,使用ng-init指令初始化了一个名为color的数组。

ng-model 指令

ng-model 指令 绑定 HTML 元素 到应用程序数据。另外ng-model 指令也可以:

  • 为应用程序数据提供类型验证(number、email、required)。
  • 为应用程序数据提供状态(invalid、dirty、touched、error)。
  • 为 HTML 元素提供 CSS 类。
  • 绑定 HTML 元素到 HTML 表单。
<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>AngularJS</title>
        <script type="text/javascript" src="js/angular.min.js"></script>
    </head>

    <body ng-app="">
        <div>
            <input type="text" ng-model="msg" />
        </div>
        <div>
            {{msg}}
        </div>
    </body>
</html>
AI 代码解读

ng-repeat 指令

ng-repeat 指令对于集合中(数组中)的每个项会 克隆一次 HTML 元素。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>AngularJS</title>
        <script type="text/javascript" src="js/angular.min.js"></script>
    </head>

    <body ng-app="" ng-init="color=['red', 'blue', 'green']">
        <div>
            <ul>
                <li ng-repeat="x in color">{{x}}</li>
            </ul>
        </div>
    </body>
</html>
AI 代码解读

自定义的指令

除了 AngularJS 内置的指令外,我们还可以创建自定义指令。
我们可以使用 .directive 函数来添加自定义的指令。要调用自定义指令,HTMl 元素上需要添加自定义指令名。我们需要使用驼峰法来命名一个指令, 例如:myDirective, 但在使用它时需要以 - 分割, my-directive

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>AngularJS</title>
        <script type="text/javascript" src="js/angular.min.js"></script>
    </head>

    <body ng-app="myApp">

        <my-directive></my-directive>

        <script>
            var app = angular.module("myApp", []);
            app.directive("myDirective", function() {
                return {
                    template: "<h1>自定义指令!</h1>"
                };
            });
        </script>

    </body>

</html>
AI 代码解读

我们可以通过元素名、属性、类名、注释来调用指令。

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>AngularJS</title>
        <script type="text/javascript" src="js/angular.min.js"></script>
    </head>

    <body ng-app="myApp">

        <my-directive></my-directive>
        <div my-directive></div>
        <div class="my-directive"></div>
        <!-- directive: my-directive -->

        <script>
            var app = angular.module("myApp", []);
            app.directive("myDirective", function() {
                return {
                    restrict : "EACM",
                    replace : true,//
                    template: "<h1>自定义指令!</h1>"
                };
            });
        </script>

    </body>

</html>
AI 代码解读

限制使用

我们可以限制我们的指令只能通过特定的方式来调用。通过添加 restrict 属性来限制,例如:设置restrict值为 “A”, 则指令只能通过属性的方式来调用。

restrict 值可以是以下几种:

  • E 只限元素名使用
  • A 只限属性使用
  • C 只限类名使用
  • M 只限注释使用

restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。

目录
相关文章
手把手教你如何申请网站空间
网站空间就像房屋的地基,对网站运营的影响非常大。在网站还没有发布之前,首先需要考虑存放的空间。
1764 0
手把手教你如何申请网站空间
Python Web 框架 FastAPI
FastAPI 是一个现代的 Python Web 框架,专为快速构建 API 和在线应用而设计。它凭借速度、简单性和开发人员友好的特性迅速走红。FastAPI 支持自动文档生成、类型提示、数据验证、异步操作和依赖注入等功能,极大提升了开发效率并减少了错误。安装简单,使用 pip 安装 FastAPI 和 uvicorn 即可开始开发。其优点包括高性能、自动数据验证和身份验证支持,但也存在学习曲线和社区资源相对较少的缺点。
315 15
云 HIS 系统的药品库存管理功能的特性
云HIS系统在药品库存管理方面引入了实时监控、智能预警、高效采购、精确追溯等多项新特性,提升了管理效率和准确性。系统支持多终端访问,实现自动化流程,并确保合规性和数据安全,同时还可与供应链集成,优化库存结构,提供全方位的药品管理解决方案。
305 4
云 HIS 系统的药品库存管理功能的特性
【阿里云弹性计算】阿里云ECS实例选择指南:理解不同实例系列的适用场景
【5月更文挑战第24天】阿里云ECS实例系列包括计算优化型、内存优化型、存储优化型、GPU加速型和通用型,适用于不同场景。计算优化型适合计算密集型任务,内存优化型适用于内存数据库,存储优化型针对高I/O需求,GPU加速型用于图形处理和深度学习,通用型则平衡各类需求。选择时需考虑应用类型、性能需求、成本效益和可扩展性。提供的示例代码展示了如何使用阿里云CLI创建通用型实例。本文旨在帮助用户根据业务需求选择最适合的ECS实例。
270 1
阿里云 RPA 与人工智能的结合:提升业务效率的新路径
在当今数字化时代,企业和组织都在寻求更高效、更智能的工作方式。阿里云 RPA(机器人流程自动化)与人工智能的结合为实现这一目标提供了新的可能性。本文将探讨阿里云 RPA 与人工智能结合的优势、应用场景以及未来的发展趋势。
iBox-面向Flutter的一站式研发工作台
Flutter 一码多端的特性,解放了端上同学的人力,带来了研发效率的提升。但随之而来的又在研发链路中发现了各种问题,例如研发环境搭建,双端工程环境,集成发布流程繁琐等等。为了深入了解开发同学们的痛点,作者团队内部发起了一份问卷调查。本文将基于问卷调查中指出的痛点,以及解决这些问题的时候面临的一些挑战进行探讨。
iBox-面向Flutter的一站式研发工作台
Python 依赖库管理pip、pipreqs、pigar、pip-tools、pipdeptree
Python 依赖库管理pip、pipreqs、pigar、pip-tools、pipdeptree
429 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问