发表于: 2019-11-20 22:16:40

1 1274


今天完成的事:将分页以及搜索和新增的功能写出来了,学会了3元判断以及复习了时间戳的转化

明天要完成的事:使数据更新之后可以自动刷新界面,理解新增页面关于图片的部分和编辑功能的编写,

难题:数据更新的方法主要是通过路由更新还有通过验证更新;路由更新比较懵逼,看不大懂,也可以重新渲染

收获:

数字类型和时间戳是不一样的:

数字类型转数字类型时

js各种数字类型互转的方法

 字符串转数字

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 ¥" }}

显示:

$1,000.00RMB ¥1,000.00

 

2、date时间格式化过滤器

在系统后台返回的数据中,时间字段,我们可能使用的是时间戳,Long型,在页面显示中肯定格式化为类似于‘2012-12-12 12:12:12’的字符串,使用date过滤器即可

{{1423130269432 | date:'yyyy-MM-dd HH:mm:ss'}}

显示:

2015-02-05 17:57:49

 

示例:

复制代码
<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

{{'abc' | uppercase}}

显示:

ABC



返回列表 返回列表
评论

    分享到