今天完成的事:将分页以及搜索和新增的功能写出来了,学会了3元判断以及复习了时间戳的转化
明天要完成的事:使数据更新之后可以自动刷新界面,理解新增页面关于图片的部分和编辑功能的编写,
难题:数据更新的方法主要是通过路由更新还有通过验证更新;路由更新比较懵逼,看不大懂,也可以重新渲染
收获:
数字类型和时间戳是不一样的:
数字类型转数字类型时
字符串转数字
1.当字符串中是纯数字
例如:var s = '234';
/********** 字符串在运算操作中会被当做数字类型来处理 ***************/
s *= 1;
/******* string的两个转换函数,只对string有效 ********/
parseInt(s); // 234
parseFloat(s); //234
/************ 强制类型转换 *********************/
Number(s); // 234
2.当字符串是数字加字母等非数字
例如: var s = '234string';
parseInt(s); //234
parseFloat(s); //234.0
parseInt() 函数从string的开始解析,返回一个整数
parseInt('123') : 返回 123;
parseInt('1234xxx') : 返回 1234;
parseInt('123.456') : 返回 123;
parseInt('1 2 3') : 返回 1;字符串的情况,自会返回第一个数
parseInt('bb cc 12') : 返回 NaN;字符串第一个不是数,返回nan
parseInt('123' 321) : 返回 321;
parseInt("AF", 16); 返回 175;会自动把二进制十六进制八进制的转化成数字
如果解析不到数字,则将返回一个NaN的值,可以用isNaN()函数来检测;
parseFloat()只会返回小数
但是时间戳转数字类型会变成:直接变成数字:
angular学习笔记【 一 】
angular 时间戳 转 格式化日期( 过滤器 )
如果我们得到一个unix的时间戳,我们需要将它转换成另外一种格式之后才能显示给用户,这转换的一步就是过滤器。
用户register时,可能会输入一些奇怪的内容,要是大家要做防范,对用户输入的内容进行过滤,这也得用到过滤器。
在angular中内置了几个常用的filter,可以简化我们的操作。过滤器使用 '|' 符号,概念有点类似于linux中的管道。
1、currency货币过滤器
有时候我们需要把数字显示为货币的形式方便展示,可以使用currency进行格式化
{{1000 | currency }}
{{1000 | currency:"RMB ¥" }}
显示:
2、date时间格式化过滤器
在系统后台返回的数据中,时间字段,我们可能使用的是时间戳,Long型,在页面显示中肯定格式化为类似于‘2012-12-12 12:12:12’的字符串,使用date过滤器即可
{{1423130269432 | date:'yyyy-MM-dd HH:mm:ss'}}
显示:
示例:
<div ng-controller="TestCtrl">
{{ a | date: 'yyyy-MM-dd HH:mm:ss' }} </div>
<script type="text/javascript"> var TestCtrl = function($scope){
$scope.a = ((new Date().valueOf()));
}
angular.bootstrap(document.documentElement); </script>
3、filter (过滤列表)
filter可以根据条件过滤数据。
filter 是一个过滤内容的标签,如果参数是一个字符串,则列表成员中的任意属性值中有这个字符串,即为满足条件(忽略大小写)。
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | filter:'coolcao'}}
显示:
[{"name":"coolcao","age":23}]
示例:
<div ng-controller="TestCtrl">
{{ data | filter: 'b' }} <br />
{{ data | filter: '!B' }} <br />
</div>
<script type="text/javascript"> var TestCtrl = function($scope){
$scope.data = [
{name: 'B', age: 4},
{name: 'A', age: 1},
{name: 'D', age: 3},
{name: 'C', age: 3},
];
}
angular.bootstrap(document.documentElement); </script>
可以使用对象,来指定属性名, $ 表示任意属性:
{{ data | filter: {name: 'A'} }} <br />
{{ data | filter: {$: '3'} }} <br />
{{ data | filter: {$: '!3'} }} <br />
自定义的过滤函数也支持:
<div ng-controller="TestCtrl">
{{ data | filter: f }} <br />
</div>
<script type="text/javascript"> var TestCtrl = function($scope){
$scope.data = [
{name: 'B', age: 4},
{name: 'A', age: 1},
{name: 'D', age: 3},
{name: 'C', age: 3},
];
$scope.f = function(e){ return e.age > 2;
}
}
angular.bootstrap(document.documentElement); </script>
4、number : 数字格式化
{{ 3.1415926 | number:1 }}
{{ 3.1415926 | number:2 }}
{{ -3.1415926 | number:2 }}
{{ 3 | number:2 }}
{{ 0.002 | number:2 }}
{{ 0.009 | number:2 }}
{{100 | number}}
{{1000 | number}}
{{1000 | number:2}}
显示:
3.1
3.14
-3.14
3.00
0.00
0.01
100
1,000
1,000.00
5、orderBy 排列
orderBy 是一个排序用的过滤器标签。它可以像 sort 函数那样支持一个排序函数,也可以简单地指定一个属性名进行操作。
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | orderBy:'age'}}
显示:
[{"name":"lily","age":20},{"name":"tom","age":22},{"name":"coolcao","age":23}]
默认是升序排列,如果要倒序:
{{[{name:'coolcao',age:23},{name:'lily',age:20},{name:'tom',age:22}] | orderBy:'age':true}}
示例:
<div ng-controller="TestCtrl">
{{ data | orderBy: 'age' }} <br />
{{ data | orderBy: '-age' }} <br />
{{ data | orderBy: '-age' | limitTo: 2 }} <br />
{{ data | orderBy: ['-age', 'name'] }} <br />
</div>
<script type="text/javascript"> var TestCtrl = function($scope){
$scope.data = [
{name: 'B', age: 4},
{name: 'A', age: 1},
{name: 'D', age: 3},
{name: 'C', age: 3},
];
}
angular.bootstrap(document.documentElement); </script>
6、json格式化
{{[{name:'coolcao',age:23},{name:'lily',age:22},{name:'tom',age:22}] | json}}
显示:
[ { "name": "coolcao", "age": 23 }, { "name": "lily", "age": 22 }, { "name": "tom", "age": 22 } ]
注:输入是js的对象(非标准json),输出的是标准的json字符串(属性名称会用双引号)
7、大小写转换: uppercase,lowercase
显示:
评论