2018.8.23开发技术总结

datepicker时间插件的二次封装 momentjs时间格式操作JS库

JS编写定义变量时,尽量不要定义和框架有歧义的变量,代码可读性降低(eg:filter)

Lodash _.move用法

var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
  return n % 2 == 0;
});
 
console.log(array);
// => [1, 3]
 
console.log(evens);
// => [2, 4]

 项目实例

class HsSaleSumController {
  constructor ($scope) {
    this.scope = $scope;
  }

  init () {
    this.scope.$watch("ctrl.sum", newVal => {
      if (!newVal) return;

      newVal.forEach(array => {
        _.remove(array, (s) => {return !s.addSum && s.name.indexOf("占比") >= 0})
      });

      this.list = newVal;
    }, true);

  }


}

angular.module('app.datas').component('hsSaleSum', {
  templateUrl: "app/_data/_directive/hsSaleSum.tpl.html",
  controller: HsSaleSumController,
  controllerAs: 'ctrl',
  bindings: {
    sum: '<'
  }
});

 

 

$state

$state对象是什么意思呢?里面也有一些方法, 最常用的$state.go()这个方法,其实就是路由的跳转。$state(url, params, {reload: true});跳转到指定的url状态,最后传递参数,reload为true表示会重载。其实这个和ui-sref本质上实现的是一个功能 a链接中 ui-sref="user({id:1,name:'lihao'})"同样带参数实现跳转,用$state对象方法$state.go('user', {id:1, name:'lihao'}); 效果一样。

然后在目标页使用下面的$stateParams对象,就可以接受这里的参数。

当然,里面还有href() includes()等方法 具体参考文章下面的ui-router链接

$stateParams

注入$stateParams模块后,其实$stateParams就是一个对象,这个对象其实就是获取传递的参数。

如果配置路由时

 

  1.  
    //url为:/user?id&name
  2.  
    //浏览时的url为: /user?id=1&name=lihao
  3.  
    //那么当前页面里面控制器的$stateParams对象的值就是:{id:1,name:lihao}

使用$stateParams有两个问题需要注意:

 

1、只有当状态激活,所有依赖项都注入的时候,才能使用$stateParams。不然获取不到,可以使用$state.current.params代替

2、$stateParams对象里面存在的值,只能是在定义当前url中定义好的参数,也就是$stateParams所处的url。

var array = [1, 2, 3, 4];
var evens = _.remove(array, function(n) {
  return n % 2 == 0;
});
 
console.log(array);
// => [1, 3]
 
console.log(evens);
// => [2, 4]
posted @ 2018-08-23 10:03  秋野春上飞  阅读(186)  评论(0编辑  收藏  举报