2

对与Ng-Alain这个前段框架,用了也有一短时间了,对于框架而言确实时很强大,很好,但对于我们而言文档少,就寸步难行,边研究编写,时不时的就在里爬半天,还不一定爬出来。

问题描述

clipboard.png

点击多选框时,选择是正确的,但是点击表格的其他地方值就变成了null,感到很奇怪,发现官方的就正常,不会出现我这种情况。

想法

  1. 首先想到的是去看文档,但是很遗憾,没有找到文档
  2. 还好有github可以看到示例代码,比较哪里与官方的不一样。

解决

发现官方上的 (change)事件是这样写的:

stChange(e: STChange) {
    switch (e.type) {
      case 'checkbox':
        this.selectedRows = e.checkbox;
        this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.callNo, 0);
        this.cdr.detectChanges();
        break;
      case 'filter':
        this.getData();
        break;
    }
  }
思考:为什么要这样写,这样写的原因是什么?

在控制台打印了一下e,发现原来鼠标点击checkbox和点击表格还有在表格中双击所触发的事件不同:

clipboard.png

修改后:

 public selectHost(e: STChange) {
        switch (e.type) {
            // 如果是多选框事件,选中主机
            case 'checkbox':
                this.selectedHosts = e.checkbox;
        }
    }

完美,没有问题!!!

clipboard.png

总结

在需要这个样式的时候就Ctrl+CCtrl+V过来了也没有多看,没用的代码就直接删掉了,但是在发现问题是往往可能是你感觉没用的哪些代码,所有在使用样式的时候大概看一下,这次没用到下次就可能用到,要多看,多总结,到在用的时候就会顺手许多。


潘佳琦
894 声望34 粉丝

为 API 生,为框架死,为 debug 奋斗一辈子;