AngularJS学习第一篇 AngularJS基础知识


Posted in Javascript onFebruary 13, 2017

AngularJS学习第一篇,了解指令、过滤器等相关内容。

指令

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

1、 ng-app:

定义了 AngularJS 应用程序的根元素;
ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序;

<div ng-app="Demo"></div>

2、 ng-init:

为 AngularJS 应用程序定义了 初始值;
通常情况下,我们使用一个控制器或模块来代替它;

<div ng-app="Demo" ng-init="firstName='John'">
 <p>我的名字是:{{ firstName }}</p>
</div>

3、 ng-model:

绑定 HTML 元素 到应用程序数据
同时也可以: 
     为应用程序数据提供类型验证(number、email、required); 
     为应用程序数据提供状态(invalid、dirty、touched、error);
     为HTML 元素提供 CSS 类;
     绑定 HTML 元素到 HTML 表单;

<div ng-app="Demo" ng-init="firstName='John'">
 <p>姓名:<input type="text" ng-model="firstName"></p>
 <p>我的名字是:{{ firstName }}</p>
</div>

4、ng-repeat:对于集合中(数组中)的每个项会 克隆一次 HTML 元素。

<div ng-app="Demo" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">
 <ul>
   <li ng-repeat="x in names">
    {{ x.name + ', ' + x.country }}
   </li>
 </ul>
</div>

5、ng-controller:为应用程序添加控制器。请根据下面示例进行了解:

<div ng-app="Demo">
 <h1 ng-controller="DemoCtrl">{{name}}</h1>
 <h1 ng-controller="DemoCtrl2">{{lastName}}</h1>
</div>
<script>
 // $scope表示作用区域,指向当前controller
 // 每个应用都有一个$rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。用 rootscope 定义的值,可以在各个 controller 中使用。
 var app = angular.module('Demo', []);
 app.controller('DemoCtrl', function($scope, $rootScope) {
  $scope.name = "Volvo";
  $rootScope.lastName = "Tom";
 });
</script>
<div ng-app="Demo" ng-controller="personCtrl">
 名: <input type="text" ng-model="firstName">
 <br>
 姓: <input type="text" ng-model="lastName">
 <br>
 姓名: {{fullName()}}
</div>
<script>
 var app = angular.module('Demo', []);
 app.controller('personCtrl', function($scope) {
  $scope.firstName = "John";
  $scope.lastName = "Doe";
  $scope.fullName = function() {
   return $scope.firstName + " " + $scope.lastName;
  }
 });
</script>

6、ng-options:创建一个下拉列表,列表项通过对象和数组循环输出。

<div ng-app="Demo" ng-controller="DemoCtrl">
 <select ng-model="selectedName" ng-options="x for x in names">
 </select>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
 $scope.names = ["Google", "W3Cschool", "Taobao"];
});
</script>

7、ng-disabled:指令直接绑定应用程序数据到 HTML 的 disabled 属性。

<div ng-app="" ng-init="mySwitch=true">
 <button ng-disabled="mySwitch">点我!</button>
 <input type="checkbox" ng-model="mySwitch"/>按钮
 {{ mySwitch }}
</div>

8、ng-show:指令隐藏或显示一个 HTML 元素。

<div ng-app="">
 <p ng-show="true">我是可见的。</p>
 <p ng-show="false">我是不可见的。</p>
</div>

9、ng-click:指令定义了一个 AngularJS 单击事件。

<div ng-app="Demo" ng-controller="myController">
 <button ng-click="count = count + 1">点我!</button>
 <p>{{ count }}</p>
</div>

10、ng-include:使用 ng-include 指令来包含 HTML 内容。

过滤器

使用一个管道字符(|)添加到表达式和指令中
常见表达式:
currency:格式化数字为货币格式;
filter:从数组项中选择一个子集;
lowercase:格式化字符串为小写;
orderBy:根据某个表达式排列数组;
uppercase:格式化字符串为大写;

<div ng-app="Demo" ng-controller="DemoCtrl">
 <p>姓名为 {{ lastName | uppercase }}</p>
</div>
<div ng-app="Demo" ng-controller="DemoCtrl">
 <ul>
 <li ng-repeat="x in names | orderBy:'country'">
  {{ x.name + ', ' + x.country }}
 </li>
 </ul>
</div>

服务

在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用;
AngularJS 中你可以创建自己的服务,或使用内建服务;
AngularJS 内建了30 多个服务;
自定义服务

app.service('hexafy', function() {
 this.myFunc = function (x) {
 return x.toString(16);
 }
});
var app = angular.module('Demo', []);
app.controller('customersCtrl', function($scope, $location) {
 $scope.myUrl = $location.absUrl();
});

常用内置服务

1、$http:是 AngularJS 中的一个核心服务。服务向服务器发送请求,应用响应服务器传送过来的数据;

var app = angular.module('Demo', []);
app.controller('DemoCtrl', function($scope, $http) {
 $http({
 url:'data.json',
 method:'GET',
 params:{
  'username':'tan'
 }
 }).success(function(data,header,config,status){
 //响应成功
 }).error(function(data,header,config,status){
 //处理响应失败
 });
});

2、$location:服务对应了 window.location 函数。

3、$timeout:服务对应了 window.setTimeout 函数。

4、$interval:服务对应了 window.setInterval 函数。

5、$rootScope:它可以作用在 ng-app 指令包含的所有 HTML 元素中。用 rootscope 定义的值,可以在各个 controller 中使用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现上传图片并预览的效果实现代码
Apr 11 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
Nov 14 Javascript
分析Node.js connect ECONNREFUSED错误
Apr 09 Javascript
基于jquery的文章中所有图片width大小批量设置方法
Aug 01 Javascript
JavaScript实现大数的运算
Nov 24 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
webpack使用 babel-loader 转换 ES6代码示例
Aug 21 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
Aug 08 Javascript
详解Vue2.0组件的继承与扩展
Nov 23 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
Sep 23 Javascript
JS实现扫码枪扫描二维码功能
Jan 03 Javascript
JS检测浏览器开发者工具是否打开的方法详解
Oct 02 Javascript
详解Javascript中DOM的范围
Feb 13 #Javascript
JS简单判断函数是否存在的方法
Feb 13 #Javascript
浅谈js中的变量名和函数名重名
Feb 13 #Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 #Javascript
js实现打地鼠小游戏
Feb 13 #Javascript
canvas实现钟表效果
Feb 13 #Javascript
深入理解Javascript箭头函数中的this
Feb 13 #Javascript
You might like
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHP 程序授权验证开发思路
2009/07/09 PHP
php数组去重复数据示例
2014/02/25 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
javascript常用函数(2)
2015/11/05 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
深入理解Python中的内置常量
2017/05/20 Python
Python实现分段线性插值
2018/12/17 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
高校教师思想汇报
2014/01/11 职场文书
文秘应届生求职信
2014/07/05 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
辞职信范文大全
2015/03/02 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android