[AngularJS] AngularJS系列(1) 基础篇

目录

  • 什么是AngularJS?
  • 为什么使用/ng特性
  • Hello World
  • 内置指令
  • 内置过滤器
  • 模块化开发

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

什么是AngularJS?

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

官网:https://angularjs.org/

下载:

Install-Package AngularJS.Core

npm install [email protected]

为什么使用/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 | 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‘,[]) //创建模块
    • 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

时间: 2024-10-26 22:37:30

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

Windows Azure系列 -《基础篇》- 创建虚拟网络

如何在Windows Azure中创建虚拟网络,以构建云环境中的虚拟局域网: 1.登陆Windows Azure平台,点击侧边栏网络按钮,在中间点击"创建虚拟网络". 2.在接下来的配置页面,填写虚拟网络的名称.选择地理外置和地缘组(如果已有),没有则选择创建新的地缘组. 3.接下来填写DNS服务器地址(没有则留空) 4.规划和配置IP网络,选择适用的地址空间. 5.最后点击确认按钮完成. Windows Azure系列 -<基础篇>- 创建虚拟网络,布布扣,bubuko.

Windows Azure系列 -《基础篇》- 如何创建虚拟机

首先,使用自己的windows azure账号登陆管理平台manage.windowsazure.cn,找到并点击"虚拟机"标签,即可看到目前云平台中你所拥有的虚机实例,在我的环境中现在没有任何的虚机,所以我们可以通过点击图示的新建按钮进行选择或直接点击"创建虚拟机"进行创建: 点击"创建虚拟机",在DNS名称位置填写所建虚机的主机名,并选择映像和虚机大小(可选单核至8核,内存从768M至56G),这里说明一下,处于用户名不可以设置为常用的adm

sql系列(基础篇)-第二章 约束和排序数据

更好的看↑代码点击VIEW PLAN 第二章 约束和排序数据 1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息: 注意:使用 between 下边界 and 上边界时,条件包括边界值: [email protected]>l 1 select * from emp 2* where sal between 1500 and 2500 [email protected]>/ EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----

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

前言 课前补充知识 Number(p,s) Number(p,s):数字类型,p 表示数字的有效长度(从数字的左边第 1 位不为 0 的开始算起,直到最右边的长度:取值范围 0~38 位),s 表示数字的精度(即小数点右边的位数,取值范围-84~127 位): Varchar2(s) Varchar2(s):可变长的字符类型,s 表示字符串的长度,取值范围 1~4000 位: Char(s) Char(s):定长的字符类型,s 表示字符串的长度,取值范围 1~2000 位: Date Date:

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

第一章 基本的SQL语句 1. 查询数据库系统时间,常以服务器默认的格式进行显示(根据数据库的字符集而定): 注意:dual 为数据库中的虚表,隶属于管理员 sys 用户,但所有的用户都可以访问:无实际意义,仅充当select 语句的结构(用 select取系统信息.临时结果等时,以 dual 充当语句结构): [email protected]>select sysdate from dual; SYSDATE --------- 18-JUN-14 1.1 修改系统时间的显示格式:(sess

Windows Azure系列 -《基础篇》- 存储

打开windows azure管理门户,点击下方的"新建", 定义一个存储名称,并设定好地缘组和位置,冗余的方式可以是地域之间的冗余,也可以是本地区域内的冗余,可以根据自己的实际情况选择. 目前windows azure在中国有两个数据中心可供选择,以托管订阅的虚机,建议选择离自己所在地位置更近一点的,访问效率会比较高. 设置完后,点击创建存储账号,既可以完成存储账号的创建工作. 在列表中我们可以看到创建的过程及状态, 通过点击所创建的存储,可以查看它的状态和修改存储配置, 在配置标签

Windows Azure系列 -《基础篇》- 基本设置

打开Windows Azure管理门户,在左侧边栏点击设置,展开设置页面 在这个页面中,我们可以看到你所拥有的订阅的信息和管理信息等. 这里简单说一下各项内容: 1. 订阅 订阅部分显示你目前账号所拥有的订阅信息以及管理帐户,如果你有多个订阅并绑定在一起,那么它将显示你所有的订阅信息. 2. 管理证书 在管理证书页面,我们可以管理用于windows azure的证书,点上传以便将证书导入windows azure. 3. 管理员 在windows azure中,如果需要有多个管理人员,我们可以在

Windows Azure系列 -《基础篇》- 计划程序

打开Windows Azure管理门户,在左侧边栏点击设置,展开计划程序页面,我们可以看到目前的作业情况: 在计划程序中,我们可以做的就是定制特定管理作业,并查看以往作业的执行情况. 点击作业集合,然后点击创建计划程序作业,即可创建你自己的作业, 在接下来的页面选择快速创建,填写作业名称并选择区域,点击下一步 在作业页面,填写作业的相关信息,包括名称.类型.方法等 确认重复周期和启动时间即可. 接下来就可以看到作业集合的状态, 以及可以查看各作业的执行情况,通过筛选可以有选择的查看所要关注的作业

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

一.概述 在android开发中很多UI控件往往需要进行定制以满足应用的需要或达到更加的效果,接下来就通过一个系列来介绍自定义控件,这里更多是通过一些案例逐步去学习,本系列有一些典型的应用,掌握好了大家也可去创新开发出一些更好的UI,本次先通过简单案例掌握一些基础知识--如何在自定义控件中定义属性. 二.实现定制一个简单RadioButton 1.编写类型MRadioButton 扩展RadioButton public class MRadioButton extends RadioButto