目录

一年前开始使用AngularJS(以后简称ng),如今ng已经出2了.虽说2已完全变样,但是1.x还是足够优秀。

什么是AngularJS?

ng是一个js框架,目前最新版本为1.5.8.

官网:https://angularjs.org/

下载:

Install-Package AngularJS.Core

npm install angular@1.5.8

为什么使用/ng特性

ng是非常少有的双向绑定框架。

特性:

  1. MV*
  2. 模块化开发
  3. 双向绑定
  4. 指令系统

Hello World

构建1个ng页面 非常容易

<!DOCTYPE html>
<html ng-app>
<head>
<title>AngularJS</title>
<script src="//cdn.bootcss.com/angular.js/1.5.8/angular.min.js"></script>
</head>
<body>
<h1>{{model}}</h1>
<input type="text" ng-model="model">
</body> </html>

这几乎是ng最简单的hello world 页面

其中

ng-app ng内置指令,标记ng管理的区域

{{model}} 则为ng的双括号插值语法,此处输出模型model的值

ng-model ng内置指令,用来绑定具体模型

内置指令

在ng中:在HTML中ng-xxx的为指令

ng中包含:

  • ng-app

    • 指定ng管理区域
  • ng-init

    • 初始化
  • ng-model

    • 双向数据绑定指令
  • ng-bind

    • 绑定数据(默认会对HTML数据转义)
  • ng-cloak

    • 加载前隐藏,加载完显示(ng模块加载完会移出特性)
  • ng-repeat

    • 循环遍历(每个元素作用域上有$id $index $first $last $middle $even $odd属性与item并齐)
    • (key,value) in data track by $index
  • ng-class

    • ng-class="{red:true}" 根据对象设置class
  • ng-show / ng-hide / ng-if

    • 是否显示 / 隐藏 / 存在 (ng-if通过注释标记能还原)
  • ng-src / ng-href

    • 防止默认请求的表达式错误
  • ng-switch

    • 当大量判断逻辑的时候,减少ng-show等的使用
  • ng-checked / ng-selected / ng-readonly / ng-disabled

    • 一般可用ng-model(以上4个指令不是双向绑定,可实现全选勾选框代码)
  • ng-change / ng-copy / ng-click / ng-dblclick / ng-focus / ng-blur / ng-submit

    • ng常用事件指令

内置过滤器

为了对数据做一些常用的操作,ng定义了一些内置的过滤器

<!DOCTYPE html>
<html ng-app>
<head>
<title>AngularJS</title>
<script src="//cdn.bootcss.com/angular.js/1.5.8/angular.min.js"></script>
</head>
<body ng-init="model=10">
<h1>{{model | currency}}</h1>
<input type="text" ng-model="model">
</body>
</html>

ng-init 初始化模型数据

{{model | currency}} 的currency则为货币过滤器

  1. currency (货币处理)

    {{num | currency : '¥'}}

  2. date (日期格式化,参考代码中的DATE_FORMATS)

    {{date | date : 'yyyy-MM-dd hh:mm:ss EEEE'}}

  3. filter(匹配子串)

    {{ childrenArray | filter : {name : 'i'} }} //匹配name属性中含有i的

  4. json(格式化json对象)

    {{ jsonTest | json}}

  5. limitTo(限制数组长度或字符串长度)

    {{ childrenArray | limitTo : 2 }} //将会显示数组中的前两项

  6. lowercase(小写)
  7. uppercase(大写)
  8. number(格式化数字)
  9. orderBy(排序)

模块化开发

在实际开发环境中,不会像上述例子中 一行js代码都不写.

在ng中,我们的代码一般在某个模块下进行开发的.

方式一:

<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>AngularJS</title>
<script src="Scripts/angular.min.js"></script>
</head>
<body ng-controller="HelloCtrl">
<h1>{{model}}</h1>
<input type="text" ng-model="model">
<script>
var app = angular.module('myApp', []);
app.controller('HelloCtrl', ['$scope', function ($scope) {
$scope.model = 'Hello World';
}]);
</script>
</body>
</html>

方式二(也可同时创建多个页面模块):

<!DOCTYPE html>
<html>
<head>
<title>AngularJS</title>
<script src="Scripts/angular.min.js"></script>
</head>
<body ng-controller="HelloCtrl">
<h1>{{model}}</h1>
<input type="text" ng-model="model">
<button type="button" ng-click="test()">Test</button>
<script>
var app = angular.module('myApp', []);
app.controller('HelloCtrl', ['$scope', function ($scope) {
$scope.model = 'Hello World';
}]);
angular.bootstrap(document, ['myApp']);//使用模块初始化页面
</script>
</body>
</html>

简单解释上面的API

  • angular.bootstrap()

    • angular.bootstrap(dom,['myApp']) 手动加载模块myApp
  • angular.module()

    • angular.module('myApp',[],cfgFn) //创建模块
    • angular.module('myApp) //获取模块
  • module.run()

    • module.run(function(){}) //相当于程序的Main方法
  • module.controller()

    • module.controller('HomeCtrl',function(){})//创建控制器
    • module.controller('HomeCtrl',['$scope',function(scope){}])//创建控制器(推荐)

在ng中建议将业务逻辑放在controller中执行。

本文地址:http://www.cnblogs.com/neverc/p/5903257.html

[AngularJS] AngularJS系列(1) 基础篇的更多相关文章

  1. 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)

    背景 ​ 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...

  2. 【webpack 系列】基础篇

    Webpack 基础篇 基本概念 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器.当 webpack 处理应用程序时,它会递归地构建一个依赖关系图,其中包含应用程序需要的每 ...

  3. SQL系列总结——基础篇(三)

    之前的两篇文章SQL系列总结:<基础篇一>, <基础篇二>已经介绍了一些基本的数据库知识.现在让我们来从头开始构建一个数据库.到管理数据库和对象. 架构开始!     1.创建 ...

  4. SQL系列总结——基础篇(一)

       数据库与表.列的关系其实就像是一个Excel工作薄(workbook)与Excel表格(sheet)以及表格中的列的关系一样.关系数据库中最基本的对象有3个:表.列.用户     基本的概念名词 ...

  5. Android自定义控件系列之基础篇

    一.概述 在android开发中很多UI控件往往需要进行定制以满足应用的需要或达到更加的效果,接下来就通过一个系列来介绍自定义控件,这里更多是通过一些案例逐步去学习,本系列有一些典型的应用,掌握好了大 ...

  6. [一天一个进阶系列] - MyBatis基础篇

    前言:一直以来,很多人都是拿来主义,只停留在会使用的阶段,从未去研究挖掘其原理,剖析本质.现在慢慢探讨一下其内幕,抛砖引玉 一.简介 1)常用的持久化框架 Hibernate:是一款Java世界中最著 ...

  7. Python高级网络编程系列之基础篇

    一.Socket简介 1.不同电脑上的进程如何通信? 进程间通信的首要问题是如何找到目标进程,也就是操作系统是如何唯一标识一个进程的! 在一台电脑上是只通过进程号PID,但在网络中是行不通的,因为每台 ...

  8. sql系列(基础篇)-前言 课前补充知识

    前言 课前补充知识 Number(p,s) Number(p,s):数字类型,p 表示数字的有效长度(从数字的左边第 1 位不为 0 的開始算起,直到最右边的长度.取值范围 0~38 位),s 表示数 ...

  9. sql系列(基础篇)-第一章 关于sysdate

    第一章 主要的SQL语句  1. 查询数据库系统时间,常以server默认的格式进行显示(依据数据库的字符集而定): 注意:dual 为数据库中的虚表,隶属于管理员 sys 用户,但全部的用户都能够訪 ...

随机推荐

  1. MongoDB索引的使用

    Table of Contents 1. 基本索引 2. 联合索引 3. 索引类型 4. 索引管理 1 基本索引 在数据库开发中索引是非常重要的,对于检索速度,执行效率有很大的影响.本 文主要描述了M ...

  2. 设计模式之美:Iterator(迭代器)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Iterator 模式结构样式代码. 实现方式(二):实现 IEnumerable 中序遍历二叉树. 实现方式(三):实现 Bi ...

  3. [翻译]docker生态圈Mindmap

    Docker是一个开源的Linux容器,其被业界所接受,很快成为了一个产业标准.Docker可以减少应用程序启动 时候的大量资源的筹备.docker很快的成为了新兴的应用程序容器标准.现在有很多项目正 ...

  4. 辛巴学院-Unity-剑英陪你零基础学c#系列(一)Hello World

    这不是草稿 辛巴学院:正大光明的不务正业.辛巴学院:攻城狮与荣耀石. 剑英陪你系列又来啦.剑英是一个有大爱的人,热爱每一个程序员,尤其是年轻漂亮的女程序.最近组织朋友们玩了一次即兴团体诗创作,无论怎么 ...

  5. [转]在cocos2d-x中让一个项目适配iphone、iphone retina、ipad、ipad retina四种分辨率

    http://cankeyyin.blog.163.com/blog/static/12336178320124149391202/ 原理:将iphone的hd图片给ipad用,即: 使用原iphon ...

  6. 《30天自制操作系统》笔记(02)——导入C语言

    <30天自制操作系统>笔记(02)——导入C语言 进度回顾 在上一篇,记录了计算机开机时加载IPL程序(initial program loader,一个nas汇编程序)的情况,包括IPL ...

  7. 成都亚马逊AWSome Day回顾

    6月25日我和公司同仁一起参加了亚马逊在成都的第一场AWSome Day活动.整个活动时间异常紧促,短短一天包含了7堂session,讲师的狂轰乱炸使得我们同学们普遍觉得比上班累多了.好了,废话不多说 ...

  8. 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  9. 关于Lua优质文章链接

    Lua 语言 15 分钟快速入门(博客-伯乐在线) http://blog.jobbole.com/70480/

  10. Ecshop :后台添加新功能 菜单及 管理权限 配置

    需求:在<商品管理>下增加一项[商品推广管理]功能 一. 添加菜单项 打开 /admin/includes/inc_menu.php 文件(后台框架左边菜单),在最后添加一行如下: $mo ...