发表于: 2020-06-06 23:26:33

1 2338


今天

继续研究下实现该日期禁用方法。之前没使用过getTime()方法,搜索了一下是获取当天午夜的日期

 

// 禁用日期方法
  disabledDate = (currentDate): boolean => {
    const time = current.getTime(); // 转换为当天的午夜时间毫秒数
    // 转换current为number
    for (let i = 1i < this.dataObjText.lengthi++) {

      // 此处转换把每一个数据的时间小时和分秒转换成和current一样也就是时分秒归零
      dataObjText[i];
      if (在此处进行对比查看相同则返回true值。) {
        return true;
      }
    }
    return false;
  };

暂时找不到方法让数据的小时分钟归零。先把这个问题搁置了。

继续之前的日期禁用方法,双向绑定请求参数的创建时间。

这两个日期选择框都是创建日期,若是绑定同一个请求参数的话,会导致两个框相同的数值。

暂时有些懵,不知道拿什么来请求一个时间区域。

问了下师兄,原来接口文档里的就是时间区域。。

这下双向绑定开始结束时间就可以了,尝试之后请求是404,打印了一下日期,

这是一个data时间戳?搜索了一下时间转换为毫秒的方法,getTime()

直接在ngmodel写getTime方法行不通,只能写一个变量,然后给参数赋值这个变量了。

直接赋值的情况下报错,问了下师兄,结果是和我之前的设置一个道理,几天前我也是写了一个双向绑定的变量,直接给参数。page:变量,导致的问题是page并没有读取到实时变化的变量,只是我初始设定赋值的变量。也就是一个空值,导致page永远为默认值1.

解决方法是写一个方法,return出来想要的那个参数。这样写的话耦合度会比较低。

// 该方法是变更时间戳。返回变更过的数据。
  changeData(a) {
    var b = a;
    return b.getTime();
    console.log(b.gerTime());
  }

根据师兄的说法是要降低耦合,关于耦合一直不怎么理解:

搜索了一下:

衡量模块独立性的定性标准是内聚(一个模块内各个元素彼此结合的紧密程度)和耦合(一个软件结构内不同模块之间互连程度的度量)。 

代码的耦合度,是指代码中的单元代码的紧密程度,其中一个单元代码的更改对其它单元代码的影响力与作用。代码间的耦合度越高,系统就在变动时就更加难以控制,但并非不能控制,只是你将为此付出巨大的代价。

不同元素之间互相影响的程度即为耦合。代码应该以低耦合为标准

内聚,更为专业的说法叫功能内聚,是对软件系统中元素职责相关性和集中度的度量。如果元素具有高度相关的职责,除了这些职责内的任务,没有其它过多的工作,那么该元素就具有高内聚性,反之则为低内聚性。也就是模块的独立性。

时间选择框暂时不清楚如何去除禁止选中,目前是实现了选择时间的功能,其余的先搁置了。

实验了几次,试着把日期选择框的双向绑定数据赋值为0或者等于null或空串,都不行,想起来直接设定请求参数为空串

结果是成功

接下来写selector下拉框的关联参数。 

还得去学习下如何绑定ng-zorro的selector数值。

同样写一个ngmodel绑定,尝试打印是成功的,但是问题是打印出来是字符串而不是序号,在接口请求的时候是数字而不是字符串,然后这里使用的是直接写的选项,问了下师兄。。nzValue就是值。。。文档没好好看的后果。

修改了一下,现在返回值为0了

双向绑定的值,写了个方法,应该算是解耦吧。

然后是状态下拉框,本来以为和type框一样。。。结果文档归档要number,而我返回的是字符串。

本想看看怎么在请求参数里面规定number,然后问了下师兄结果是跟我双向绑定的那个参数相关的,那个参数是字符串那么传进去就是字符串,还是得先转换字符串为数字。很少转换过搜了一下一般情况下使用parselnt就可以了。

this.listModul.status = parseInt(this.selectFn(this.selectStatus));

添加一个数字转换就可以了。

又出现一个问题,就是选全部的话,报错nan,意为not a number,

师兄交了一个与运算符判断,说是简易三元运算符。

 this.listModul.status = this.selectStatus && parseInt(this.selectFn(this.selectStatus));

暂时有点没搞懂这个&&的判断,说是判断false,true

表达式1 || 表达式2,只要任意表达式为true,则整个表达式的运算结果为true。
表达式1 && 表达式2,只有所有表达式都为true,则整个表达式的运算结果才为true。根据集合的补集的思想,只要任意表达式为false,则整个表达式的运算结果为false。

查了下算是清楚了,这也可以算是一个判断了。
根据师兄的说法,直接使用请求参数的某个值进行双向绑定,是比较好的方法,一时没有转变过来思路,之前都是使用变量。

直接绑定的话就方便很多了。

当然也有绑定不了的,需要进行类型转的,那么就需要写一个方法,进行转换。转换成数字方法。

有一个问题,默认的状态为空值,尴尬的是,空值无法点击搜索按钮获取数据

而另一个下拉栏给了一个默认值空串,然后空串就是全部了。

写了下空值,完成。。因为我转换过了。。之前失败是因为该空值是字符串的空值。。导致我转换数据类型后没有再尝试了。。尝试过了undefined,null或者0,要么报错要么搜索不到数据。

明天:

继续任务步骤:接下来是url路径跳转,关于路由的设置,然后就基本完成该任务了。

收获和疑惑:

收获在今天那里了。对于这个任务的进度比较慢,原因是钻了不少牛角尖,以及思维还没转换过来,还处于以变量为主的思维。

转牛角尖研究一天多的时间去搞日期栏,但是还是没有研究出来解决方法,但是对于日期算是比较了解一点了,看了些关于日期的文章,虽然没详细研究。对于今天的关于双向绑定和转换数据类型,解耦,算是比较深刻的了解吧,写一个方法进行数据转换,return出去的数据和原本的变量就变得没那么大的耦合度了,只有数据是相关的。


返回列表 返回列表
评论

    分享到