简介


以 JavaScript 编写的库,是一个 JavaScript 框架

一、表达式


AngularJS 使用 表达式 把数据绑定到 HTML。

  • 表达式写在双大括号内:{{ expression }}
  • 表达式把数据绑定到 HTML,与 ng-bind 指令有异曲同工之妙。
  • 将在表达式书写的位置"输出"数据。
  • 它们可以包含文字、运算符和变量。实例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }

二、指令


AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-

ng-app 初始化一个 AngularJS 应用程序(告诉 AngularJS,ng-app所在元素是 AngularJS 应用程序 的"所有者"。)

<div ng-app="" ng-init="firstName='John'">

     <p>在输入框中尝试输入:</p>
<p>姓名:<input type="text" ng-model="firstName"></p>
<p>你输入的为: {{ firstName }}</p> </div>
ng-init 定义初始值
ng-model

把元素值(比如输入域的值)绑定到应用程序。用于表单元素的,支持双向绑定(在修改输入域的值时, AngularJS 属性的值也将修改:)。对普通元素无效({数据绑定:{ firstName }} 是通过 ng-model="firstName" 进行同步。)

模型

ng-model 指令用于绑定应用程序数据到 HTML 控制器(input, select, textarea)的值

<div ng-app="myApp" ng-controller="myCtrl">
名字: <input ng-model="name">
</div> <script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.name = "John Doe";
});
</script>
<form ng-app="" name="myForm">
Email:
<input type="email" name="myAddress" ng-model="text">
<span ng-show="myForm.myAddress.$error.email">不是一个合法的邮箱地址</span>
</form>

验证用户输入

<form ng-app="" name="myForm" ng-init="myText = 'test@runoob.com'">
Email:
<input type="email" name="myAddress" ng-model="myText" required></p>
<h1>状态</h1>
{{myForm.myAddress.$valid}}
{{myForm.myAddress.$dirty}}
{{myForm.myAddress.$touched}}
</form>

应用状态

ng-model 指令根据表单域的状态添加/移除以下类:(生成的类名)

  • ng-empty
  • ng-not-empty
  • ng-touched布尔值属性,表示用户是否和控件进行过交互
  • ng-untouched
  • ng-valid布尔型属性,它指示表单是否通过验证。如果表单当前通过验证,他将为true
  • ng-invalid未通过验证的表单
  • ng-dirty布尔值属性,表示用户是否修改了表单。如果为ture,表示没有修改过;false表示修改过
  • ng-pending
  • ng-pristine布尔值属性,表示用户是否修改了表单。如果为ture,表示没有修改过;false表示修改过
ng-repeat 对于集合中(数组中)的每个项会 克隆一次 HTML 元素

<div data-ng-app="" data-ng-init="names=['Jani1','Hege','Kai']">
<p>使用 ng-repeat 来循环数组</p>
<ul>
<li data-ng-repeat="x in names">
{{ x }}
</li>
</ul>
</div>

创建自定义指令:

  • 使用驼峰法来命名一个指令, runoobDirective, 但在使用它时需要以 - 分割, runoob-directive:
  • 元素<runoob-directive></runoob-directive>
  • 只能通过属性的方式来调用,restrict : "E",
<body ng-app="myApp">

<runoob-directive></runoob-directive>

<script>
var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
return {
template : "<h1>自定义指令!</h1>"
};
});
</script>
  • 属性<div runoob-directive></div>
  • 只能通过属性的方式来调用,restrict : "A",
<body ng-app="myApp">

<div runoob-directive></div>

<script>
var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
return {
template : "<h1>自定义指令!</h1>"
};
});
</script>
  • 类名<div class="runoob-directive"></div>
  • 只能通过属性的方式来调用,restrict : "C",
<body ng-app="myApp">

<div class="runoob-directive"></div>

<script>
var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
return {
restrict : "C",
template : "<h1>自定义指令!</h1>"
};
});
</script>
  • 注释<!-- directive: runoob-directive -->
  • 只能通过属性的方式来调用,restrict : "M",
<body ng-app="myApp">

<!-- directive: runoob-directive -->

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

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

angularJS(一):表达式、指令的更多相关文章

  1. AngularJS 简介、指令、表达式

    AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. AngularJS 通过指令扩展了 HTML,且通过表达式绑定数据到 HT ...

  2. AngularJS的表达式、指令的学习(2)

    最近没有那么忙,就来系统学习一下AngularJS吧,昨天简单的认识了一下,今天就从表达式入手吧,嘿嘿. 一.AngularJS 表达式 AngularJS表达式写在双大括号内:{{expressio ...

  3. AngularJS中的指令全面解析(转载)

    说到AngularJS,我们首先想到的大概也就是双向数据绑定和指令系统了,这两者也是AngularJS中最为吸引人的地方.双向数据绑定呢,感觉没什么好说的,那么今天我们就来简单的讨论下AngularJ ...

  4. 使用Angularjs的ng-cloak指令避免页面乱码

    在使用Anguarjs进行web开发或者进行SPA(single page application)开发时,往往会遇到下面这样的问题. 刷新页面时,页面会出现一些乱码,这里的乱码具体是指`{{expr ...

  5. 带你走近AngularJS - 创建自定义指令

    带你走近AngularJS系列: 带你走近AngularJS - 基本功能介绍 带你走近AngularJS - 体验指令实例 带你走近AngularJS - 创建自定义指令 ------------- ...

  6. 你知道用AngularJs怎么定义指令吗?

    前言 最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 ang ...

  7. Ⅵ.AngularJS的点点滴滴-- 指令

    指令 基本用法 <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2/angul ...

  8. AngularJS创建新指令 - 基本功能

    指令(Directives)是所有AngularJS应用最重要的部分.尽管AngularJS已经提供了非常丰富的指令,但还是经常需要创建应用特定的指令. AngularJS原有的指令 ng-init  ...

  9. AngularJS:表达式

    ylbtech-AngularJS:表达式 1.返回顶部 1. AngularJS 表达式 AngularJS 使用 表达式 把数据绑定到 HTML. AngularJS 表达式 AngularJS ...

  10. [转]你知道用AngularJs怎么定义指令吗?--很详细

    前言 最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 ang ...

随机推荐

  1. aspnet:MaxHttpCollectionKeys 不起作用

    场景: vs2010  webform  表单域长度,在webconfig中加入该节点,有的项目起作用,有的项目无效,不知道是什么原因??

  2. XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。

    XML DOM DOM 把 XML 文档视为一种树结构.通过这个 DOM 树,可以访问所有的元素.可以修改它们的内容(文本以及属性),而且可以创建新的元素.元素,以及它们的文本和属性,均被视为节点. ...

  3. .NET面试题系列(十九)Socket网络异常类型

    序言 资料 异常测试之Socket网络异常

  4. Springboot 构建http服务,返回的http行是'HTTP/1.1 200' 无状态码描述 客户端解析错误

    ————————————————————————————————————————— *** 响应的数据格式  HTTP/1.1 200 OK  Server: Apache-Coyote/1.1  A ...

  5. A - 地震预测

    A - 地震预测 怀特先生是一名研究地震的科学家,最近他发现如果知道某一段时间内的地壳震动能量采样的最小波动值之和,可以有效地预测大地震的发生. 假设已知一段时间的n次地壳震动能量的采样值为a1,a2 ...

  6. SWPUCTF2019 | Network

    这题真的就靠百度的,第一次接触TTL型的misc,直接拿了一个大佬的脚本,改了一丢丢: with open('t.txt') as f: lines = f.readlines() n_num = [ ...

  7. Oracle报Ora01522

    应用服务报错截图 数据库后台日志报错截图 从日志分析应该是回滚异常造成表空间无法使用回滚段,而回滚涉及的表空间为undo表空间 尝试新建UNDO表空间,再将UNDO_TABLESPACE切换到新建的U ...

  8. 关于spring data jpa的@query的传入参数是对象怎么匹配参数

    /** * Specifies methods used to obtain and modify person related information * which is stored in th ...

  9. 2018-2019-2-20175225 实验三 《敏捷开发与XP实践》实验报告

    一.实验内容与步骤 1.安装.使用alibaba插件规范代码 - 在IDEA的setting中找到plugins并搜索alibaba,点击install进行安装 - 重启IDEA后,在代码中右击点击编 ...

  10. 解决Python print输出不换行没空格的问题

    今天在做编程题的时候发现Python的print输出默认换行输出,并且输出后有空格. 题目要求输出 122 而我的输出是: 1 2 2 于是我百度查到取消print自动换行的方法:就是在print的值 ...