刚刚接触angularJS,网上学习了一遍菜鸟教程(http://www.runoob.com/angularjs/angularjs-tutorial.html),做了些基础知识的笔记。

AngularJS 是一个 JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。
AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>

语法:双括号{{ …. }}
根元素: ng-app=”” :初始化应用程序
初始化数据:ng-init:”a=4; b=5; ”(不常用)
                          字符串c=’alison’;
对象:person={a:”1”,b:”2”}
数组:array={1,2,3}
显示数据:直接使用表达式{{ a+b }}
绑定数据:ng-bind=”a+b” (不常用)
              ng-model:”a+b”
(3)循环元素: ng-repeat:
//放入列表
<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">
<p>使用 ng-repeat 来循环数组</p>
  <ul>
    <li ng-repeat="x in names">
      {{ x.name + ', ' + x.country }}
    </li>
  </ul>
<div>
//放入表格
<tr ng-repeat="x in names | orderBy : 'Country' ">
<td>{{ $index + 1 }}</td> //显示序列号
     <td>{{ x.Name }}</td>
      <td>{{ x.Country | uppercase }}</td>
   </tr>
//对表格使用css样式
table tr:nth-child(odd) { //偶数
   background-color: #f1f1f1;
}
table tr:nth-child(even) { //奇数
   background-color: #ffffff;
}
//表格使用$even和$odd
<tr ng-repeat="x in names">
<td ng-if="$odd" style="background-color:#f1f1f1"> {{ x.Name }} </td>
<td ng-if="$even"> {{ x. Country }} </td>
</tr>

(4)自定义指令:.directive函数
var app = angular.module(“myApp”,[]);
app.directive(“runoobDirective”,function(){
return{ template : “<h1>hello</h1>” }
}
调用自定义指令:< runoobDirective > </ runoobDirective >
<div runoob-directive> </div>
<div class=”runoob-directive”> </div>
<!-- runoob-directive -->
限制指令调用方式return{ restrict:”A” }
E 只限元素名使用
A 只限属性使用
C 只限类名使用
M 只限注释使用

(5)ng-model:
..把数据绑定到控制器
<input ng-model=”name”>

var app = angular.module(“myApp”,[]);
app.controller(“myCtrl”,function($scope){
$scope.name=”Mike”;
})

实时双向绑定
<div ng-app="myApp" ng-controller="myCtrl">
    名字: <input ng-model="name">
     <h1>你输入了: {{name}}</h1> //随着用户输入的改变而改变
</div>
验证用户输入
<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>
<h1>状态</h1>
<p>Valid: {{myForm.myAddress.$valid}} (如果输入的值是合法的则为 true)</p>
<p>Dirty: {{myForm.myAddress.$dirty}} (如果值改变则为 true)</p>
<p>Touched: {{myForm.myAddress.$touched}} (如果通过触屏点击则为 true)</p>
</form>
ng-model 指令根据表单域的状态添加/移除以下类:
ng-empty
ng-not-empty
ng-touched
ng-untouched
ng-invalid 不合法
ng-valid
ng-dirty 值改变
ng-pending
ng-pristine

( 6 )Scope作用域
当你在 AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递:
<ul> <li ng-repeat="x in names">{{x}} </ul>
//控制器,javascript对象
app.controller(“myCtrl”,function($scope){
 $scope.names = ["Emil", "Tobias", "Linus"]; }
根作用域$rootScope:
它可以作用在 ng-app 指令包含的所有 HTML 元素中,用 rootscope 定义的值,可以在各个 controller 中使用。与scope用法相同,作用域不同。

(7)Angular JS过滤器
用一个管道字符(|)添加到表达式和指令中
滤器可用于转换数据:
currency : 格式化数字为货币格式
filter : 从数组项中选择一个子集
lowercase : 格式化字符串为小写
<p>姓名为 {{ lastName | uppercase }}</p>
uppercase : 格式化字符串为大写
orderBy : 根据某个表达式排列数组

//用户输入筛选功能
<li  ng-repeat = "x in names | orderBy:'country' ">
{{ x.name + ', ' + x.country }}
<p>输入过滤:</p>
<p> <input type="text" ng-model="test"> </p>
<ul>
<li ng-repeat = "x in names | filter : test | orderBy:'country'">
{{ (x.name | uppercase) + ', ' + x.country }}
</li>
</ul>

(8)AngularJS XMLHttpRequest
用于读取web服务器上的数据,例如:.php , .sql , .apsx等
$http.get(url) 是用于读取服务器数据的函数
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
    $http.get("http://www.runoob.com/try/angularjs/data/Customers_JSON.php");
    .success(function(response) {$scope.names = response.records;});
});

(9)AngularJs HTML DOM
ng-show指令
隐藏或显示一个 HTML 元素
ng-show="true/false" //….显示/隐藏
<p  ng-show="hour > 12" >我是可见的。</p> //…用表达式判断现实和隐藏

ng-disabled指令
直接绑定HTML的disabled属性
<div ng-app="" ng-init="mySwitch=true">
<p>
<button ng-disabled="mySwitch">点我!</button>
</p>
<p>
<input type="checkbox" ng-model="mySwitch">按钮 // 用复选框控制按钮的disabled属性
</p>
<p>
{{ mySwitch }}
</p>
</div>

(9) AngularJs 事件
ng-click 指令 点击事件
ng-click="count = count + 1";

<div ng-app="myApp" ng-controller="personCtrl">
<button  ng-click="toggle()" >>隐藏/显示</button>
<p ng-hide="myVar">….</p>
</div>
<script>
var app = angular.module('myApp', []); //创建模块module, JavaScript 中应避免使用全局函数。因为他们很容易被其他脚本文件覆盖。
AngularJS 模块让所有函数的作用域在该模块下,避免了该问题。

app.controller('personCtrl', function($scope) {
    $scope.myVar = false; //使默认属性为false
    $scope.toggle = function() {
        $scope.myVar = ! $scope.myVar; //每调用一次toggle(),false/true变换一次
    };
});
</script>

(10) .AngularJS表单
AngularJS 表单是输入控件的集合,input , select , button , textarea, HTML 表单通常与 HTML 控件同时存在.
表单验证:
<p>用户名:<br>
   <input type="text" name="user" ng-model="user" required>
   <span style="color:red"  ng-show = " myForm . user . $dirty && myForm . user . $invalid">
   <span  ng-show = "myForm . user . $error . required">用户名是必须的。</span>
   </span>
</p>

<input type="submit" ng-disabled = "myForm . user . $dirty && myForm . user . $invalid ||
  myForm . email . $dirty && myForm . email . $invalid"> // 表单不为空且合法

$dirty 表单有填写记录
$valid 字段内容合法的
$invalid 字段内容是非法的
$pristine 表单没有填写记录

(11)AngularJS全局 API 
全局 API 函数使用 angular 对象进行访问,例如:

angular.lowercase() 转换字符串为小写
angular.uppercase() 转换字符串为大写
angular.isString() 判断给定的对象是否为字符串,如果是返回 true。
angular.isNumber() 判断给定的对象是否为数字,如果是返回 true。

(12)AngularJS包含
ng-include = “ ‘index.htm’ ”

angularJS 小记的更多相关文章

  1. 再谈angularJS数据绑定机制及背后原理—angularJS常见问题总结

    这篇是对angularJS的一些疑点回顾,是对目前angularJS开发的各种常见问题的整理汇总.如果对文中的题目全部了然于胸,觉得对整个angular框架应该掌握的七七八八了.希望志同道合的通知补充 ...

  2. 通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇

    什么是服务? 服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通信,并且能保证数据的一致性. 服务是一个单例对象,在每个应用中只会被实例化一次(被$injector实例化) ...

  3. AngularJs之九(ending......)

    今天继续angularJs,但也是最后一篇关于它的了,基础部分差不多也就这些,后续有机会再写它的提升部分. 今天要写的也是一个基础的选择列表: 一:使用ng-options,数组进行循环. <d ...

  4. AngularJS过滤器filter-保留小数,小数点-$filter

    AngularJS      保留小数 默认是保留3位 固定的套路是 {{deom | number:4}} 意思就是保留小数点 的后四位 在渲染页面的时候 加入这儿个代码 用来精确浮点数,指定小数点 ...

  5. Angular企业级开发(1)-AngularJS简介

    AngularJS介绍 AngularJS是一个功能完善的JavaScript前端框架,同时是基于MVC(Model-View-Controller理念的框架,使用它能够高效的开发桌面web app和 ...

  6. 模拟AngularJS之依赖注入

    一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...

  7. 步入angularjs directive(指令)--点击按钮加入loading状态

    今天我终于鼓起勇气写自己的博客了,激动与害怕并存,希望大家能多多批评指导,如果能够帮助大家,也希望大家点个赞!! 用angularjs 工作也有段时间了,总体感觉最有挑战性的还是指令,因为没有指令的a ...

  8. 玩转spring boot——结合AngularJs和JDBC

    参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...

  9. 玩转spring boot——结合jQuery和AngularJs

    在上篇的基础上 准备工作: 修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...

随机推荐

  1. MySql查询语句中的变量使用

    前言 今日在LeetCode刷MySql的题,遇到一题,题目到没什么,解答完了之后习惯去看此题的题解,有位大佬的思路让博主感觉很惊艳,至此,特地记录学习一下. 题目 解答 乍一看题目也没啥,分数排名, ...

  2. MQTT消息队列压力测试

    环境准备: jmeter插件下载:mqttxmeter1.0.1jarwithdependencies.jar 把MQTT插件放在 %JMeter_Home%/lib/ext下.重启jmeter. M ...

  3. CSG:清华大学提出通过分化类特定卷积核来训练可解释的卷积网络 | ECCV 2020 Oral

    论文提出类特定控制门CSG来引导网络学习类特定的卷积核,并且加入正则化方法来稀疏化CSG矩阵,进一步保证类特定.从实验结果来看,CSG的稀疏性能够引导卷积核与类别的强关联,在卷积核层面产生高度类相关的 ...

  4. STM32F103C8T6-CubeMx串口收发程序详细设计与测试(1)——CubeMx生成初始代码

    STM32F103C8T6-CubeMx串口收发程序详细设计与测试(1)--CubeMx生成初始代码 关键词:STM32F103C8T6 CubeMX UART 详细程序设计 1.开发环境 (1)ST ...

  5. 跟我一起学.NetCore之熟悉的接口权限验证不能少(Jwt)

    前言 权限管控对于一个系统来说是非常重要的,最熟悉不过的是菜单权限和数据权限,上一节通过Jwt实现了认证,接下来用它实现接口权限的验证,为什么不是菜单权限呢?对于前后端分离而言,称其为接口权限感觉比较 ...

  6. 用 shell 脚本做 restful api 接口监控

    问题的提出 基于历史原因,公司有一个"三无"采集服务--无人员.无运维.无监控--有能力做的部门不想接.接了的部门没能力.于是就一直这样裸奔,直到前几天一个依赖于这个采集服务的大数 ...

  7. 微信小程序实时将less编译为wxss

    1.npm或者yarn全局安装wxss-cli npm install -g wxss-cli 2.运行waxes-cli命令(mp_wx为小程序目录) wxss ./mp_wx 实时监听mp_wx目 ...

  8. 【树形结构】51nod 1766 树上的最远点对

    题目内容 \(n\)个点被\(n−1\)条边连接成了一颗树,边有权值\(w_i\).有\(q\)个询问,给出\([a,b]\)和\([c,d]\)两个区间,表示点的标号请你求出两个区间内各选一点之间的 ...

  9. Spring Boot使用Mybatis实现增删改查

    java.com.wms.model.Admin.java 1 package com.wms.model; 2 3 import java.sql.Timestamp; 4 5 public cla ...

  10. 转 RabbitMQ 入门教程(PHP版) 使用rabbitmq-delayed-message-exchange插件实现延迟功能

    延迟任务应用场景 场景一:物联网系统经常会遇到向终端下发命令,如果命令一段时间没有应答,就需要设置成超时. 场景二:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单. 场景三:过1分钟给新 ...