当前位置: 首页 > 编程日记 > 正文

AngularJS安装配置与基础概要整理(上)

以前整理的,可供参考。

安装:

1.首先要安装node.js和它的npm包管理系统。(nodejs相关待整理)

2.安装grunt

.grunt是一个基于任务的Javascript工程命令行构建工具。

  在dos窗口输入:npm install grunt-cli -g

  具体模块安装:npm install(gruntgrunt模块的名称) --save-dev

3.安装Karma runner

  在dos窗口输入:npm install karma-cli -g

  安装Karmanpm install karma --save-dev

  安装你项目需要的组件:npm install karma-jasmine karma-chrome-launcher --sava-dev

4.下载angular.js

在这个网站下载:https://code.angularjs.org/

  选定一个2.0以前的版本。

一、AngularJS简介

AngularJS是一个JavaScript框架。它可通过<script>标签添加到HTML页面。

AngularJS通过指令扩展了HTML,且通过表达式绑定数据到HTML

1.AngularJS通过ng-directives扩展了HTML

Ng-app指令定义一个AngularJS应用程序。

Ng-model指令把元素值(比如输入域的值)绑定到应用程序。

Ng-bind指令把应用程序数据绑定到HTML视图。

2.什么是AngularJS

AngularJS使得开发现代的单一页面应用程序变得更加容易。

·AngularJS把应用程序数据绑定到HTML元素。

·AngularJS可以克隆和重复HTML元素。

·AngularJS可以隐藏和显示HTML元素。

·AngularJS可以在HTML元素“背后”添加代码。

·AngularJS支持输入验证。

3.AngularJS指令

AngularJS指令是以ng作为前缀的HTML属性。

Ng-init指令初始化AngularJS应用程序变量。

* HTML5允许扩展的(自制的)属性,以data-开头。

AngularJS属性以ng-开头,但是可以使用data-ng-来让网页对HTML5有效。

4.AngularJS表达式

AngularJS表达式写在双大括号内:{{expression}}

AngularJS表达式把数据绑定到HTML,这与ng-bind指令有异曲同工之妙。

AngularJS将在表达式书写的位置“输出”数据。

AngularJS表达式很像Javascript表达式:它们可以包含文字、运算符和变量。

5.AngularJS应用

AngularJS模块(module)定义了AngularJS应用。

AngularJS控制器(Controller)用于控制AngularJS应用。

Ng-app指令定义了应用,ng-controller定义了控制器。

AngularJS模块定义应用:

Var app = angular.module(‘myApp’,{});

AngularJS控制器控制应用:

App.controller(‘myCtrl’,function($scope){$scope.firstName = “John”;$scope.lastName = “Doe”;})

二、AngularJS表达式

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

1.AngularJS数字

<div ng-app=”” ng-init=”quantity=1;cost=5”>

<p>总价:{{quantity * cost}}</p>

</div>

使用ng-bind的相同实例:

<div ng-app=”” ng-init=”quantity=1;cost=5”><p>总价:<span ng-bind=”quantity * cost”></span></p></div>

2.AngularJS字符串

<div ng-app=”” ng-init=”firstName=’John’;lastName=’Doe’”><p>姓名:{{firstName + “ “ + lastName}}</p></div>

使用ng-bind的相同实例:

<div ng-app=”” ng-init=”firstName=’John’;lastName=’Doe’”><p>姓名:<span ng-bind=”firstName + ‘ ‘ + lastName”></span></p></div>

3.AngularJS对象

<div ng-app=”” ng-init=”person={firstName:’John’,lastName:’Doe’}”><p>姓为{{person.lastName}}</p></div>

4.AngularJS数组

<div ng-app=”” ng-init=”points=[1,15,19,2,40]”><p>第三个值为{{points[2]}}</p></div>

5.AngularJS表达式与JavaScript表达式

  类似于JavaScript表达式,AngularJS表达式可以包含字母,操作符,变量。

  与JavaScript表达式不同,AngularJS表达式可以写在HTML中;AngularJS表达式不支持条件判断,循环及异常;AngularJS表达式支持过滤器。

三、AngularJS指令

AngularJS通过被称为指令的新属性来扩展HTML

AngularJS通过内置的指令来为应用添加功能。

AngularJS允许你自定义指令。

1.AngularJS指令

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

Ng-app指令初始化一个AngularJS应用程序。

Ng-init指令初始化应用程序数据。

Ng-model指令把元素值(比如输入域的值)绑定到应用程序。

2.数据绑定

AngularJS中的数据绑定,同步了AngularJS表达式与AngularJS数据。

  在下一个示例中,两个文本域是通过两个ng-model指令同步的。

<div ng-app=”” ng-init=”quantity=1;price=5;”><h2>价格计算器</h2>数量:<input type=”number” ng-model=”quantity”>价格:<input type=”number” ng-model=”price”><p><b>总价:</b>{{quantity*price}}</p></div>

3.重复HTML元素

Ng-repeat指令会重复一个HTML元素:

<div ng-app=”” ng-init=”names=[‘Jani’,’Hege’,’Kai’]”><p>使用ng-repeat来循环数组</p><ul><li ng-repeat=”x in names”>{{x}}</li></ul></div>

Ng-repeat指令用在一个对象数组上

<div ng-app=”” ng-init=”names=[{name:’Jani’,country:’Norway’},{name:’Hege’,country:’Sweden’},{name:’Kai’,country:’Denmark’}]”><p>循环对象:</p><ul><li ng-repeat=”x in names”>{{x.name + ‘,’ + x.country}}</li></ul></div>

* AngularJS完美支持数据库的CRUD(增加Create、读取Read、更新Update、删除Delete)应用程序。把实例中的对象想象成数据库中的记录。

4.ng-app指令

Ng-app指令定义了AngularJS应用程序的根元素

Ng-app指令在网页加载完毕时会自动引导(自动初始化)应用程序。

5.ng-init指令

Ng-init指令为AngularJS应用程序定义了初始值。

  通常情况下,不使用ng-init。您将使用一个控制器或模块来代替它。

6.ng-model指令

Ng-model指令绑定HTML元素到应用程序数据。

Ng-model指令也可以:

·为应用程序数据提供类型验证(numberemailrequired)。

·为应用程序数据提供状态(invaliddirtytouchederror)。

·为HTML元素提供CSS类。

·绑定HTML元素到HTML表单。

7.ng-repeat指令

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

8.创建自定义的指令

可以使用.directive函数来添加自定义的指令。

  要调用自定义指令,HTML元素上需要添加自定义指令名。

使用驼峰法来命名一个指令,runoobDirective,但在使用它时需要以-分割,runoob-directive

<body ng-app=”myApp”><runoob-directive></runoob-directive><script>Var app = angular.module(“myApp”,[]);App.directive(“runoobDirective”,function(){Return{Template : “<h1>自定义指令!</h1>”
};});</script></body>

可以通过以下方式来调用指令:

·元素名

·属性

·类名

·注释

以下实例方式也能输出同样结果:

元素名:

<runoob-directive></runoob-directive>

属性:

<div runoob-directive></div>

类名:

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

注释:

<!-- 指令:runoob-directive -->

*需要在该实例添加replace属性,否则评论是不可见的。

*必须设置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></body>

9.限制使用

可以限制指令只能通过特定的方式来调用。

通过添加restrict属性,并设置值为”A”,来设置指令只能通过属性的方式来调用:

Var app = angular.module(“myApp”,[]);App.directive(“runoobDirective”,function(){Return {Restrict : “A”,Template : “<h1>自定义指令!</h1>”
};});

  Restrict值可以是以下几种:

·E只限元素名使用

·A只限属性使用

·C只限类名使用

·M只限注释使用

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

四、AngularJS模型

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

  可以将输入域的值与AngularJS创建的变量绑定。

<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>

1.双向绑定

  双向绑定,在修改输入域的值时,AngularJS属性的值也将修改:

<div ng-app=”myApp” ng-controller=”myCtrl”>名字:<input ng-model=”name”><h1>你输入了:{{name}}</h1></div>

2.验证用户输入

<form ng-app=”” name=”myForm”>Email:<input type=”email” name=”myAddress” ng-model=”text”><span ng-show=”myForm.myAddress.$error.email”>不是一个合法的邮箱地址</span></form>

*以上实例中,提示信息会在ng-show属性返回true的情况下显示。

3.应用状态

Ng-model指令可以为应用数据提供状态值(invalid,dirty,touched,error)

<form ng-app=”” name=”myForm” ng-init=”myText = ‘test@runoob.com’”>Email:<input type=”email” name=”myAddress” ng-model=”myText” required><p>编辑邮箱地址,查看状态的改变。</p><h1>状态</h1><p>Valid:{{myForm.myAddress.$valid}}(如果输入的值是合法的则为true)。</p><p>Dirty:{{myForm.myAddress.$dirty}}(如果值改变则为true)。</p><p>Touched:{{myForm.myAddress.$touched}}(如果通过触屏点击则为true)。</p></form>

4.CSS

Ng-model指令基于它们的状态为HTML元素提供了CSS类:

<style>Input.ng-invalid{Background-color: lightblue;}</style>
<form ng-app=”” name=”myForm”>输入你的名字:<input name=”myName” ng-model=”myText” required></form><p>编辑文本域,不同状态背景颜色会发生变化</p><p>文本域添加了required属性,该值时必须的,如果为空则是不合法的。</p>

Ng-model指令根据表单域的状态添加/移除以下类:

·ng-empty

·ng-not-empty

·ng-touched

·ng-untouched

·ng-valid

·ng-invalid

·ng-dirty

·ng-pending

·ng-pristine

转载于:https://www.cnblogs.com/xulei1992/p/5956267.html

相关文章:

通风与防排烟工程电子书_菠菜关于防排烟系统使用软接头工程量计算注意及定额选用建议...

前言&#xff1a;前几日分享《工程建设标准强制性条文》关于安装专业相关内容&#xff0c;其余规范部分&#xff0c;建议大家自行查看&#xff0c;不再继续分享。今日继续分享《建筑防烟排烟系统技术标准》相关内容依据1&#xff1a;2.1 设于排风兼排烟系统上的软接管必须为不燃…

超级账本(Hyperledger Fabric)之权限管理浅析

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 超级账本&#xff08;Hyperledger Fabric&#xff09;之权限管理浅析 超级账本是联盟链的代表&#xff0c;而其相对于共链&#xff08;例如比特币&a…

Java通过JDBC连接MySQL数据库

代码描述&#xff1a;把前台获取的字段作为查询条件&#xff0c;返回符合条件的记录。 1 package com.imooc.dao;2 3 import java.sql.Connection;4 import java.sql.DriverManager;5 import java.sql.PreparedStatement;6 import java.sql.ResultSet;7 import java.sql.SQLExc…

关于C#调用非托管DLL,报“内存已损坏的”坑,坑,坑

因客户需求&#xff0c;与第三方对接&#xff0c;调用非托管DLL&#xff0c;之前正常对接的程序&#xff0c;却总是报“内存已损坏的异常”&#xff0c;程序进程直接死掉&#xff0c;折腾到这个点&#xff08;2018-05-11 00:26&#xff09;&#xff0c;终于尘埃落定,直接上程序…

python会不会出现内存泄露_Python内存泄漏和内存溢出的解决方案

一、内存泄漏像Java程序一样&#xff0c;虽然Python本身也有垃圾回收的功能&#xff0c;但是同样也会产生内存泄漏的问题。对于一个用 python 实现的&#xff0c;长期运行的后台服务进程来说&#xff0c;如果内存持续增长&#xff0c;那么很可能是有了“内存泄露”。1、内存泄露…

以太坊发展历史回顾

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 以太坊历史 最近历史记录&#xff0c;请查看Taylor Gerring博客发帖。 诞生 2013年末Vitalik Buterin第一次描述了以太坊&#xff0c;作为他研究比…

医学图像分类_TauMed:医学诊断领域中的图像分类测试数据扩增

南京大学智能软件工程实验室iselab.cn摘要&#xff1a;深度学习在医学分类方面取得了长足的进步。但是&#xff0c;在许多现实的环境中&#xff0c;用于训练和测试的数据不足且不平衡&#xff0c;深度学习模型将很容易过度拟合且泛化能力很差。并且由于医院和患者的状况并不总是…

仲兆鹏 160809329 第5次

---恢复内容开始--- 第一题 #include<stdio.h>//输入三个数有小到大排序 int main() {int a;int b;int c;printf("输入三个整数:");scanf("%d %d %d",&a,&b,&c);if(a>c) { ta; ac; ct; } if(b>c) { tb…

promise实现多个请求并行串行执行

早上查资料&#xff0c;偶然发现这个话题&#xff0c;发现自己并不会&#xff0c;于是乎&#xff0c;下来研究了一下。 想想之前我们用jquery写请求的时候&#xff0c;要实现请求的串行执行&#xff0c;我们可能是这么做的。 $.ajax({url: ,data: ,success: function (data) {$…

人工智能和区块链的融合

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 AI与区块链结合&#xff0c;可能性有多大&#xff1f; 人工智能和区块链是促进各行业创新和转型的主要技术&#xff0c;对这一点各行业已达成共识。…

AngularJS学习笔记(3)——通过Ajax获取JSON数据

通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例&#xff0c;使用JSON前todo.html代码如下&#xff1a; <!DOCTYPE html> <html ng-app"todoApp"> <head> <meta charset"UTF-8"> <title>TO DO List</tit…

python爬取哔哩哔哩视频_荐爬取哔哩哔哩中的cosplay小视频

爬取哔哩哔哩小视频前言&#xff1a;想必大家都对小视频感兴趣吧&#xff0c;今天的爬虫的内容为将哔哩哔哩中的视频下载到本地&#xff0c;今天爬取的网站为URL : https://vc.bilibili.com/p/eden/all#/?tab%E5%BE%A1%E5%AE%85%E6%96%87%E5%8C%96&tagCOSPLAY1. 分析站点a…

区块链双语术语大全

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 这是一个简单而又全面的Blockchain词汇表&#xff0c;用于令人印象深刻的blockchain语言世界。 51% Attack&#xff08;51%攻击&#xff09; 当一…

SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)

五、锁与事务隔离级别 事务隔离级别简单的说&#xff0c;就是当激活事务时&#xff0c;控制事务内因SQL语句产生的锁定需要保留多入&#xff0c;影响范围多大&#xff0c;以防止多人访问时&#xff0c;在事务内发生数据查询的错误。设置事务隔离级别将影响整条连接。 SQL Serve…

开源造轮子:一个简洁,高效,轻量级,酷炫的不要不要的canvas粒子运动插件库...

一&#xff1a;开篇 哈哈哈&#xff0c;感谢标题党的莅临~ 虽然标题有点夸张的感觉&#xff0c;但实际上&#xff0c;插件库确实是简洁&#xff0c;高效&#xff0c;轻量级&#xff0c;酷炫酷炫的咯。废话不多说&#xff0c;先来看个标配例子吧&#xff1a; &#xff08;codepe…

python启动appium服务_python下appium服务的自启动和关闭

最近想把前不久写的webUi框架改写成mobile_Ui,也就是 用于手机端的UI自动化框架&#xff0c;目前已经完成该框架的改写&#xff0c;记录其中一些问题&#xff0c;框架后续会单独写篇幅介绍遇到的第一个问题就是1、python怎么能够自动启动和自动关闭appium服务&#xff0c;这样每…

以太坊源码分析

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 前言&#xff1a;人类正在步入数据时代。如今&#xff0c;全球每天就产生超过500亿GB的数据&#xff0c;据IDC预测&#xff0c;到2025年这一数据将超…

yapi-docker

yapi-docker 转载于:https://www.cnblogs.com/vickey-wu/p/9026153.html

灵活性是原则性基础上的灵活

灵活性是原则性基础上的灵活&#xff0c;没有原则性的灵活是耍流氓。 原则性是质&#xff0c;灵活性是量&#xff0c;灵活性有度的要求&#xff0c;就是不能改变质。转载于:https://www.cnblogs.com/jcode/p/5961867.html

办公室自动化系统_信息化管理建设 公司办公室用自动盖章机贵吗?

办公室自动盖章机的应用我们首先要考虑到底有没有用&#xff0c;之后在考虑贵不贵的问题。自动盖章机也称智能印章&#xff0c;是企业单位建设信息化印章管理方式的一种&#xff0c;过去由于人工盖章和管章效率低&#xff0c;且风险较大&#xff0c;为了避免因印章管理不当引起…

加密货币银行是什么?它又将如何运作?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 比特币曾经承诺&#xff0c;将帮助每个人拥有“属于自己的 银行 ”。但这里需要强调一点&#xff0c;在了解到银行实际提供的众多服务之后&#xff…

【Python】实现将testlink上的用例指定格式保存至Excel,用于修改上传

背景 前一篇博客记录的可以上传用例到testlink指定用例集的脚本&#xff0c;内部分享给了之后&#xff0c;同事希望能将testlink上原有的用例下载下来&#xff0c;用于下次修改上传&#xff0c;所有有了本文脚本。 具体实现 获取用例信息 def download_testcase():""…

Java随机字符串:随机数字字符串,工具类

Java中生成随机数&#xff0c;字符串的工具类 1. 调用方法需要传入生成字符串的长度和需要的类型 生成随机数字 生成随机字母字符串 生成随机字符串数字等 ......... 2. 总共8种类型&#xff0c;具体看工具类中的注释。 1 import java.util.Date;2 import java.util.Random;3 i…

python怎么查看代码错误_python中的错误如何查看

python常见的错误有1.NameError变量名错误2.IndentationError代码缩进错误3.AttributeError对象属性错误4.TypeError类型错误5.IOError输入输出错误6.KeyError字典键值错误具体介绍1.NameError变量名错误报错&#xff1a;>>> print aTraceback (most recent call last…

Facebook的加密货币即将到来会对整个加密货币领域意味着什么

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 Facebook的加密货币即将到来&#xff0c;它对整个加密货币领域意味着什么&#xff1f;这里不仅涉及到用户采用、节点参与&#xff0c;还涉及到合规、…

threadlocal使用场景_深入剖析ThreadLocal

点击上方 IT牧场 &#xff0c;选择 置顶或者星标技术干货每日送达朋友们在遇到线程安全问题的时候&#xff0c;大多数情况下可能会使用synchronized关键字&#xff0c;每次只允许一个线程进入锁定的方法或代码块&#xff0c;这样就可以保证操作的原子性&#xff0c;保证对公共资…

zabbix 监控tomcat实例

zabbix 监控tomcat实例环境:CentOS 7.2zabbix-3.0.5 LTSnginx-1.10.1php-7.0.11mariadb-10.1.18tomcat-9请参看zabbix-3.0.x LTS源码安装配置Tomcat7/8/9安装配置tomcat启用jmxhttp://tomcat.apache.org/tomcat-9.0-doc/monitoring.htmlhttp://docs.oracle.com/javase/6/docs/t…

什么是USDT以及如何使用它?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 什么是USDT&#xff1f; 如果您使用Poloniex或Bittrex交易所交易&#xff0c;那么您可能已经多次见过UDST市场了&#xff0c;您甚至经常使用它。 …

BZOJ3930: [CQOI2015]选数

BZOJ3930: [CQOI2015]选数 Description 我们知道&#xff0c;从区间[L,H]&#xff08;L和H为整数&#xff09;中选取N个整数&#xff0c;总共有(H-L1)^N种方案。 小z很好奇这样选出的数的最大公约数的规律&#xff0c;他决定对每种方案选出的N个整数都求一次最大公约数&#xf…

the job was canceled什么意思_这些英语短语,因为相差一个“the”导致意思大不相同!...

今天有小伙伴在我文章下面留言&#xff0c;说到了两个短语&#xff0c;同样是因为两者之间相差一个“the”而造成了意义完全不同。分别是“out of question”和“out of the question”&#xff0c;第一个没有“the”意思是“毫无疑问、无疑的”意思。第二个则是“不可能的”。…