您的位置:首页 > Web前端 > AngularJS

今天开发中遇到的一个关于初始化赋值问题

2017-09-01 16:23 435 查看


昨天花时间改了一下项目中筛选条件的样式和代码,然后提交到git上面去了。
不小心就被师父看到了,然后发了一个截图问我,你这==1是什么意思?




我解释说是第一次加载页面的时候还没有数据可以初始值,如果直接用Stage的数字的话,将来如果后台变了就会没有效果了,我用1传到后台,在判断赋值一遍,至少不会错。
他说那我还不如用Stage对应的数字,至少不要if ,看你好像好多地方写了if(我们公司讨厌if else ,这是低质量代码的表现,只用一个if还可以容忍,虽然我也讨厌if,但是我还是用了)。
我答,但是那样会很别扭啊,如果改动了就要全部改。
然后又说了一堆,就是用==1压根就看不懂要表达的意思,我觉得用Stage数字一样看不懂啊,而且像-1,0, 1这样的临界数字会好一点,但是我没有说了,因为我知道这也不是最好的办法。
然后师父过来帮我看了一下,说你到前端声明一个全局的用常量值,以后有变动也只要改这一个文件。我这样一想,是好一点,总比页面去判断等于1 好啊 。
然后按Shared下面建了一个Stage-init.profile.ts的文件 如下:


//公用的Stage

var Stage: {

routeAssigned: number,

contentVerified: number,

shippingPlanning: number,

preInterventionNeeded: number,

loadBalanced: number,

};

this.Stage = {

routeAssigned: 120,

contentVerified: 116,

shippingPlanning: 117,

preInterventionNeeded: 5,

loadBalanced: 140,

};

export { Stage };

在每个页面中继承并调用:

import { Stage } from ‘../shared/stage-init.profile’;

赋初始值:

this.criteria.stage = Stage.routeAssigned;


这样就搞定了,省掉了一大堆判断代码,有6,7个页面都要if判断一下也是心累的。

反思: 在决定写这个的时候,我只想到了样式和代码的统一,确没有想到基本一样的代码,是不是可以抽出来,共用。比如用==1这样的写法,也是自己想不到更好的办法,觉得能看起来统一就行。但是我没有去跟同事讨论或者问问同事有没有更好的想法,自己一意孤行的就做了,结果很简单的一个问题,白白浪费了几个小时。以后一定要多跟同事交流,把自己的想法表达出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 数据 angular2