如何使用angularJs

前端之家收集整理的这篇文章主要介绍了如何使用angularJs前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本期更新,博主将给大家分享一些AngularJs常用的一些属性方法,AngularJS 是由 Google 的员工 Miško Hevery 从 2009 年开始着手开发。这是一个非常好的构想,该项目目前已由 Google 正式支持,有一个全职的开发团队继续开发和维护这个库。AngularJS 是一个 JavaScript 框架。它是一个以 JavaScript 编写的库。因此,有一定JavaScript基础的朋友会更容易理解,其中的一些用法也可参照Javascript的使用方法

一、AngularJS入门之指令与表达式

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

【AngularJS常用指令】

1、ng-app:声明Angular所管辖的区域。一般写在body或html上,原则上一个页面只有一个;

2、ng-model:把元素值(比如输入域的值)绑定到应用程序的变量中。

3、ng-bind:把应用程序变量中的数据绑定到 HTML视图中。可用表达式{{ }}替代;

{{name}}

4、ng-init:初始化 AngularJS应用程序中的变量。

5、表达式: {{}} 绑定表达式,可以包含文字、运算符和变量。但表达式在网页加载瞬间会看到{{}},所以可以用ng-bind=""替代

{{ 5 +""+ 5 + ',Angular'}}

【基本概念】

1、指令:AngularJS中,通过扩展HTML的属性提供功能。所以,ng-开头的新属性,被我们成为指令

<Meta charset="UTF-8"> AngularJS入门 <input type="text" id="input" ng-model="name"/>
<div id="div" ng-bind="name+',Angular'">{{name}}

<input type="text" id="input2" ng-model="name"/>

我的第一个表达式: {{ 5 +""+ 5 + ',Angular'}}

<script src="libs/jquery-3.1.1.js">
<script src="libs/angular.js">

<script type="text/javascript">
// var input1 = document.getElementById("input");
// var div = document.getElementById("div");
//
// input1.onkeyup = function(){
// div.innerHTML = input1.value;
// }

// $("#input").keyup(function(){
// $("#div").html($("input").val());
// });

二、AngularJS中的MVC与作用域

[MVC三层架构]

1、Model(模型):应用程序中用于处理数据的部分。(保存或修改数据到数据库、变量等)。AngularJS中的Model特指的是:数据

View(视图):用户看到的用于显示数据的页面

Controller(控制器):应用程序中处理用户交互的部分。负责从视图读取数据,控制用户输入,并向模型发送数据。

2、工作原理: 用户从视图层发出请求,controller接收到请求后转发给对应的model处理,model处理完成后返回结果给controller,并在view层反馈给用户

主要用于CRUD类应用,不适合游戏开发和DOM操作

创建一个Angular模块,即ng-app所绑定的部分,需传递两个参数:

① 模块名称,即ng-app所需要绑定的名称。ng-app="myApp"

② 数组:需要注入的模块名称,不需要可为空。

var app = angular.module("myApp",[]);

在Angular模块上,创建一个控制器Controller,需要传递两个参数

① Controller名称,即ng-controller需绑定的名称。ng-controller="myCtrl"

② Controller的构造函数:构造函数可以传入多个参数,包括$scope/$rootScope以及各种系统内置对象;

[AngularJS中的作用域]

$scope:局部作用域,声明在$scope上的属性方法,只能在当前Controller中使用;

$rootScope:根作用域,声明在$rootScope上的属性方法,可以在ng-app所包含的任何区域使用(无论是否同一Controller,或是否在Controller包含范围中)。

>>> 若没有使用$scope声明变量,而直接在html中使用ng-model绑定的变量作用域为:

1.如果ng-model在某个ng-controller中,则此变量会默认绑定到当前Controller的$scope上;

2.如果ng-model没有在任何一个ng-controller钟,则此变量将绑定在$rootScope上;

三、Angular过滤器

AngularJS中,过滤器可以使用一个管道字符(|)添加到表达式和指令中。

>>> 系统内置过滤器:

currency格式化数字为货币格式。

filter从数组项中选择一个子集。

lowercase格式化字符串为小写。

orderBy根据某个表达式排列数组。

uppercase格式化字符串为大写。

<Meta charset="UTF-8">

<body ng-app="app" ng-controller="ctrl">

{{"aBcDeF"|uppercase}}

{{"aBcDeF"|lowercase}}

{{123456|currency}}

请输入筛选信息:

<table class="table table-bordered">

姓名 年龄 成绩 score'"> score}}{{"123456"|reverse}}

四、Angular服务Service

【服务Service】

1、内置服务:

>>>使用内置服务必须在controlller中通过函数的参数注入进来!!!!

$location :返回当前页面的 URL 地址;

$http: 服务器请求数据,类似于AJax;

$timeout :对应了 JS window.setTimeout 函数

$interval :对应了 JS window.setInterval 函数

<Meta charset="UTF-8"> {{local}}

{{gongneng}}

将255转为16进制:{{hexafy}}

{{123|filt}}

{{123|filt1}}

自定义服务factory】

factory 是一个函数用于返回值,通常我们使用 factory 函数来计算或返回值。(factory使用上,与service差距不大)

<Meta charset="UTF-8">

<body ng-app="app" ng-controller="ctrl">

[功能]
{{gongneng}}

255转成16进制为:{{num}}

自定义服务provide】

1、在AngularJS中,Service,factory都是基于provider实现的。

2、在provider中,通过$get()方法提供了factory的写法,用于返回 value/service/factory。;

3、provider是三种自定义服务中,唯一可以写进config配置阶段的一种。

如果服务,必须要在配置阶段执行,那么必须使用provider。否则,一般使用Service或factory

<Meta charset="UTF-8">

<body ng-app="app" ng-controller="ctrl">

[功能]
{{gongneng}}

255转成16进制为:{{num}}

五、Angular中的$http

$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。

<Meta charset="UTF-8">

<body ng-app="app" ng-controller="ctrl">

<div class="container" style="margin-top: 50px;">
@H41301@
<div class="panel-heading">
<div class="panel-title" style="text-align: center;">H5-1701班级信息表

姓名 年龄 爱好 语文成绩 数学成绩 总分 score.chinese + score.math'"> --> score.chinese">score.math">score.chinese + item.score.math">

六、Angular中的select

使用数组作为数据源。

其中,x表示数组的每一项。

默认会将x直接绑定到option的value中。

而option显示内容,有前面的x for... 决定

使用对象作为数据源.

其中,(x,y)表示键值对,x为键,y为值。

默认会将值y绑定到option的value中.

而option显示内容,有前面的x for... 决定

<Meta charset="UTF-8">

<body ng-app="app" ng-controller="ctrl">

<input type="checkBox" ng-model="mySwitch">是否同意我是帅哥!

<button ng-disabled="!mySwitch" class="btn btn-primary">点我!

<button ng-show="mySwitch1" class="btn btn-primary">点我!

<button ng-hide="mySwitch2" class="btn btn-primary">点我!

<button ng-click="count = count + 1">点我!

{{ count }}

八、Angular表单和输入验证

[AngularJS中的表单验证]

1、表单中,常用的验证操作:

$dirty表单有填写记录

$valid字段内容合法的

$invalid字段内容是非法的

$pristine 表单没有填写记录

$error 表单验证不通过的错误信息

2、验证时,需给表单,及需要验证的input,设置name属性

给form及input设置name后,会将form表单信息,默认绑定到$scope作用域中。故,可以使用 formName.inputName.$验证操作 得到验证结果:

例如:formName.inputName.$dirty = "true" 表单被填写过

formName.inputName.$invalid = "true" 表单输入不合法

formName.inputName.$error.required = "true" 表单必填但未填

$error支持的验证有:required/minlength/maxlength/pattern/email/number/date/url等。。。

3、为避免冲突,例如使用type="email"时,H5也会进行验证操作。如果只想使用AngularJS验证,可以使用属性,禁用H5自带验证功能

<Meta charset="UTF-8"> 用户注册

<div class="panel-body">

用户名:
required ng-class="{suc:myForm.name.$valid && myForm.name.$dirty,err:myForm.name.$invalid && myForm.name.$dirty}"/>

required">用户名必须填写!!! 用户名最少包含4个字符!!! 用户名最多包含10个字符!!!

<div class="row"&gt;
 <div class="col-xs-3"&gt;
  邮箱:
 </div>
 <div class="col-xs-9"&gt;
  <input type="email" class="form-control" ng-model="user.mail" name="mail" <a href="/tag/required/" target="_blank" class="keywords">required</a> ng-class="{suc:myForm.mail.$valid && myForm.mail.$dirty,err:myForm.mail.$invalid && myForm.mail.$dirty}"/&gt;
  <p style="color: red; margin: 0px;" ng-show="myForm.mail.$invalid && myForm.mail.$dirty"&gt;
   <!--当有填写记录且不合法时,p显示-->
   <span ng-show="myForm.mail.$error.<a href="/tag/required/" target="_blank" class="keywords">required</a>"&gt;邮箱必须填写!!!</span>
   <span ng-show="myForm.mail.$error.email"&gt;邮箱格式不合法!!!</span>
  </p>
 </div>
</div>

<div class="row"&gt;
 <div class="col-xs-3"&gt;
  密码:
 </div>
 <div class="col-xs-9"&gt;
  <input type="password" class="form-control" ng-model="user.pwd" name="pwd" pattern="^\w{6,18}$" <a href="/tag/required/" target="_blank" class="keywords">required</a> ng-class="{suc:myForm.pwd.$valid && myForm.pwd.$dirty,err:myForm.pwd.$invalid && myForm.pwd.$dirty}"/&gt;
  <p style="color: red; margin: 0px;" ng-show="myForm.pwd.$invalid && myForm.pwd.$dirty"&gt;
   <!--当有填写记录且不合法时,p显示-->
   <span ng-show="myForm.pwd.$error.pattern"&gt;密码应为6-18位,且只能为字母、数字、下划线</span>
  </p>
 </div>

</div>

<div class="row"&gt;
 <div class="col-xs-3"&gt;
  确认密码:
 </div>
 <div class="col-xs-9"&gt;
  <input type="password" class="form-control" ng-model="rePwd" name="rePwd" <a href="/tag/required/" target="_blank" class="keywords">required</a> ng-class="{suc:myForm.rePwd.$dirty&&rePwd==user.pwd,err:myForm.rePwd.$dirty&&rePwd!=user.pwd}"/&gt;
  <p style="color: red; margin: 0px;" ng-show="myForm.rePwd.$dirty && rePwd!=user.pwd"&gt;
   <!--当有填写记录且不合法时,p显示-->
   两次密码输入不一致!!!
  </p>
 </div>
</div>

<div class="row"&gt;
 <div class="col-xs-5"&gt;
  <input type="submit" value="注册" class="btn btn-success" ng-disabled="myForm.$invalid || rePwd!=user.pwd" />
 </div>
 <div class="col-xs-5"&gt;
  <input type="button" value="重置" class="btn btn-warning" ng-click="resets()" />
 </div>
</div>
</form>
   {{user.pwd}}
  

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程之家!

猜你在找的JavaScript相关文章