AngularJS变量及过滤器Filter用法分析


Posted in Javascript onNovember 22, 2016

本文实例讲述了AngularJS变量及过滤器Filter用法。分享给大家供大家参考,具体如下:

1. 关于部分变量的操作

设置变量:

ng-init="hour=14" //设置hour变量在DOM中 使用data-ng-init 更好些
$scope.hour = 14; //设置hour变量在js中

使用变量:

(1) 如果是在DOM 相关的 ng-*** 属性里 直接写变量名

如:

<p ng-show="hour > 13">I am visible.</p>

(2) 如果是在控制器HTML 中但是不在 ng属性里

使用{{变量名}}

如:

{{hour}}

(3) 当然第三种就是上面的 在js中使用

加上对象名 $scope.

$scope.hour

(4) 在表单控件中 ng-model中的变量 可以直接

同时在 html 中 使用 {{变量名}}

<p>Name: <input type="text" ng-model="name"></p>
<p>You wrote: {{ name }}</p>

还可以通过 ng-bind 属性进行变量绑定

<p>Name: <input type="text" ng-model="name"></p>
<p ng-bind="name"></p>

(5) 可以直接在ng的属性 或变量中使用表达式

会自动帮你计算 需要符合js语法

ng-show="true?false:true"
{{5+6}}
<div ng-app="" ng-init="points=[1,15,19,2,40]">
  <p>The third result is <span ng-bind="points[2]"></span></p>
</div>

2. js中的变量循环

<div ng-app="" ng-init="names=['Jani','Hege','Kai']">
 <ul>
  <li ng-repeat="x in names">
   {{ x }}
  </li>
 </ul>
</div>

3.变量的过滤 filter

Filter         Description
currency    以金融格式格式化数字
filter          选择从一个数组项中过滤留下子集。
lowercase   小写
orderBy     通过表达式将数组排序
uppercase   大写

如:

<p>The name is {{ lastName | uppercase }}</p>

当然多个函数封装可以使用 |

<p>The name is {{ lastName | uppercase | lowercase }}</p>
//排序函数的使用
<ul>
 <li ng-repeat="x in names | orderBy:'country'">
  {{ x.name + ', ' + x.country }}
 </li>
</ul>
//通过输入内容自动过滤显示结果
<div ng-app="" ng-controller="namesCtrl">
  <p><input type="text" ng-model="test"></p>
  <ul>
   <li ng-repeat="x in names | filter:test | orderBy:'country'">
    {{ (x.name | uppercase) + ', ' + x.country }}
   </li>
  </ul>
</div>

names | filter:test | orderBy:'country'
就是将names数组中的项 按照 test表单值进行 筛选
然后以 names中的子元素 country 进行排序

自定义过滤器:

<!DOCTYPE html>
<html ng-app="HelloApp">
<head>
<title></title>
</head>
<body ng-controller="HelloCtrl">
 <form>
   <input type="text" ng-model="name"/>
 </form>
 <div>{{name|titlecase}}</div>
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
 <script type="text/javascript">
  // 编写过滤器模块
  angular.module('CustomFilterModule', [])
      .filter( 'titlecase', function() {
    return function( input ) {
      return input.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
  }
  });
  // 实际展示模块
  // 引入依赖的过滤器模块 CustomFilterModule
  angular.module('HelloApp', [ 'CustomFilterModule'])
    .controller('HelloCtrl', ['$scope', function($scope){
    $scope.name = '';
  }])
</script>
</body>
</html>

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
脚本安需导入(装载)的三种模式的对比
Jun 24 Javascript
javascript cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
火狐下input焦点无法重复获取问题的解决方法
Jun 16 Javascript
JavaScript中的包装对象介绍
Jan 27 Javascript
js限制input标签中只能输入中文
Jun 26 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
javascript+css3开发打气球小游戏完整代码
Nov 28 Javascript
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
在vue项目中使用sass的配置方法
Mar 20 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
js实现GIF图片的分解和合成
Oct 24 Javascript
js实现提交前对列表数据的增删改查
Jan 16 Javascript
jQuery中$.grep() 过滤函数 数组过滤
Nov 22 #Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 #Javascript
浅析JavaScriptSerializer类的序列化与反序列化
Nov 22 #Javascript
JS如何设置iOS中微信浏览器的title
Nov 22 #Javascript
原生JS查找元素的方法(推荐)
Nov 22 #Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 #Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 #Javascript
You might like
PHP基础学习小结
2011/04/17 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
Python实现队列的方法
2015/05/26 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
关于python写入文件自动换行的问题
2018/06/23 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python实现大文件分割与合并
2019/07/22 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
python dumps和loads区别详解
2020/02/04 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
Python和Bash结合在一起的方法
2020/11/13 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
德国网上花店:Valentins
2018/08/15 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
AJax面试题
2014/11/25 面试题
cf收人广告词大全
2014/03/14 职场文书
个人授权委托书格式
2014/08/30 职场文书
用人单位聘用意向书
2015/05/11 职场文书
小学生读书笔记
2015/07/01 职场文书
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫