漫谈程序员(七)公司真实上线项目开发日志--你懂得
公司项目开发日志
整个暑假都在忙公司的事情,论文还没有着落。自己本身就有写日记的习惯,从以前的纸质到现在的电子版,总喜欢将自己的生活轨迹记录下来,希望将来某一天自己一个人无聊的时候可以翻看一下自已曾经的生活轨迹。以下是自己在参与公司项目开发中所做的开发日志。想要强调的是做事情要循序渐进,稳抓稳打,步步推进。
2015年7月17日 星期五 17:12:37 晴
人员、需求均已确定,下面就要开始干活了。一个月必须完成。
服务端采用servlet,没有使用到别的框架。下面回顾一下servlet的概念:
Servlet是在服务区上运行的小程序。一个Servlet就是一个java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。
2015年7月18日 星期六 8:14:00 阴
开始干活。
根据要求,自己需要把数据库的端口号、用户名、密码更改掉。但更改时遇到了问题。
很简单的一个问题,自己却搞了半天。只需要删除原来的服务实例,自己新建一个就可以了。
2015年7月19日 星期日 21:48:37 阴
把数据库部分已做好,下面就是完成数据的写入,从用户注册开始着手。
2015年7月20日 星期一 8:00:44 阴
熟悉一下代码。完成数据的写入,从用户注册开始着手。
2015年7月21日 星期二 15:13:17 阴
PS:难道自己走弯路了,没有啊!小石给我说的那个方法只是针对lm_pay_type表的啊。明天得打电话问问他,今天就不打扰他了。
数据的写入已经没有问题了。前后台已打通穴位。
2015年7月22日 星期三 8:02:27 阴
PS:果然是自己的方向出现了问题。对于每张数据表都有一个自动生成的类进行管理,应该属于反向工程。
表的操作涉及到for update,也就是锁表。
游标的操作,把自己搞蒙了。
注意事项:
1. 采用了java的反射机制,应该做到客户端传输的数据字段名与服务端字段属性名称一致。
2. 应用一启动,在首页位置通过像服务端发送DoQuery请求,实现广告
图片轮播,每张广告图片对应一个URL链接地址。
3. 导入文件时,路径中一定不要包含中文字符或者数字等特殊符号,否则会造成意想不到的后果。
4. 由于编码的多样化,代码注释时务必使用英文进行注释。
5. 游标的使用
-
/**关注/取消关注**/
-
public static boolean do_1001(RequestMessage request,ResponseMessage response){
-
Bx_gzlist bx_gzlist=new Bx_gzlist();
-
String optype=request.json.getString("optype");
-
if(!bx_gzlist.dec_upd("uid1='"+request.uid+"' and uid2='"+request.json.getString("ouid")+"'")){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="更新粉丝表失败";
-
logger.error("Query bx_gzlist error:"+bx_gzlist.errtext);
-
return(false);
-
}
-
bx_gzlist.fet_upd();
-
Bx_user me=new Bx_user();
-
Bx_user him=new Bx_user();
-
if(!me.dec_upd("uid='"+request.uid+"'")){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="访问用户表失败";
-
logger.error("Query bx_user error:"+me.errtext );
-
return(false);
-
}
-
me.fet_upd();
-
if(me.eof){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="访问用户表失败";
-
logger.error("Query bx_user error:"+request.uid );
-
return(false);
-
}
-
if(!him.dec_upd("uid='"+request.json.getString("ouid")+"'")){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="访问用户表失败";
-
logger.error("Query bx_user error:"+him.errtext );
-
return(false);
-
}
-
him.fet_upd();
-
if(him.eof){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="访问用户表失败";
-
logger.error("Query bx_user error:"+request.json.getString("ouid") );
-
return(false);
-
}
-
-
if(bx_gzlist.eof){
-
//尚未建立关注列表
-
bx_gzlist.clo_upd();
-
if(optype==null ||optype.equals("")||optype.equals("0")){
-
//取消关注
-
bx_gzlist.set_uid1(request.uid);
-
bx_gzlist.set_uid2(request.json.getString("ouid"));
-
bx_gzlist.set_stat("0");
-
}else{
-
//关注
-
bx_gzlist.set_uid1(request.uid);
-
bx_gzlist.set_uid2(request.json.getString("ouid"));
-
bx_gzlist.set_stat("1");
-
me.set_gzcnt(me.get_gzcnt()+1);
-
logger.error("现在的关注个数:"+me.get_gzcnt());
-
him.set_fscnt(him.get_fscnt()+1);
-
logger.error("现在的粉丝个数:"+him.get_fscnt());
-
}
-
-
bx_gzlist.set_gztime(Functions.getNow19());
-
-
if(!bx_gzlist.ins()){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="更新粉丝表失败";
-
logger.error("Insert bx_gzlist error:"+bx_gzlist.errtext);
-
return(false);
-
}
-
if(!me.upd_upd()){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="更新粉丝表失败";
-
logger.error("Update bx_user error:"+me.errtext);
-
return(false);
-
}
-
if(!him.upd_upd()){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="更新粉丝表失败";
-
logger.error("Update bx_user error:"+him.errtext);
-
return(false);
-
}
-
}else{
-
-
if(optype==null ||optype.equals("")||optype.equals("0")){
-
//取消关注
-
if(bx_gzlist.get_stat().equals("1")){
-
bx_gzlist.set_stat("0");
-
me.set_gzcnt(me.get_gzcnt()-1);
-
him.set_fscnt(him.get_fscnt()-1);
-
}else{
-
bx_gzlist.set_stat("0");
-
}
-
}else{
-
//关注
-
if(!bx_gzlist.get_stat().equals("1")){
-
bx_gzlist.set_stat("1");
-
me.set_gzcnt(me.get_gzcnt()+1);
-
him.set_fscnt(him.get_fscnt()+1);
-
}else{
-
bx_gzlist.set_stat("1");
-
}
-
}
-
bx_gzlist.set_gztime(Functions.getNow19());
-
if(!bx_gzlist.upd_upd()){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="更新粉丝表失败";
-
return(false);
-
}
-
bx_gzlist.clo_upd();
-
-
if(!me.upd_upd()){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="更新粉丝表失败";
-
logger.error("Update bx_user error:"+me.errtext);
-
return(false);
-
}
-
if(!him.upd_upd()){
-
response.result=MyConst.ERR_FORMAT;
-
response.errtext="更新粉丝表失败";
-
logger.error("Update bx_user error:"+him.errtext);
-
return(false);
-
}
-
}
-
return(true);
-
}
2015年7月23日 星期四 7:58:58 阴
嗯,服务端肯定有方法传数据给客户端的,前面的Demo中就有实现。
1)完成用户登录,注册。
2)完成药品分类(默认、价格、销量)查询。
详情:
1. 点击“销量“或者”价格“,即可按他们进行排序,第一次点击为升序排列,第二次点击变为”降序“排列,依次类推。
2. 排序区最右边有两个小箭头,向上为深色,向下为浅色表示升序排列劈裂,反之表示降序排列,“默认“的排序方式不分升降序,两个箭头都显示为浅色
修改排序方式,会造成重新查询。
3. 每一次显示X条记录(X为参数,暂定为10),当滚动屏幕到最后一条记录时,如果再向上滚动,会自动发一次查询,查询下X条记录(可操作叮当体验)。
3)完成刷新操作。
2015年7月24日 星期五 7:46:10 阴
将昨天的工作完成。
其插入的设计思想为:首先通过dec_upd()定义打开游标,然后通过fet_upd()抽取数据,查找待插入的数据记录是否存在,通过定义变量eof来验证待插入数据是否存在。若不存在,则执行clo_upd()关闭游标,并执行ins()方法插入待插入数据;若待插入数据存在,则执行upd_upd()等新数据方法,并执行clo_upd()关闭游标方法。(PS:那么数据的插入与查询操作则可以放在同一个方法中执行!)
2015年7月25日 星期六 7:55:24 晴
上面的模块做的差不多了,今天要安排新的模块。
1)按关键字查询药品(可按关键字查询历史进行)
2)定位地址(药店地址完成,客户地址未完成)
3)二维码扫描
4)优化刷新操作
待做:
1)过场动画
2015年7月26日 星期日 7:55:57 晴
今日工作安排:
1)二维码扫描
2)过场动画
3)3003交易
碰到了棘手的问题,药店选择的策略是什么?全部遍历计算一遍,比较出最小值,再进行后续操作?显然这是效率最低的方式!
Q:用户基本信息表中存放的是基本用户与商户的信息。是否应该拆成两张表?
medprice=localRs.getDouble("medprice");
getDouble()不获取无意义的0。
2015年7月27日 星期一 8:45:48 晴
昨天的工作没有完成,今日继续做。
今日工作安排:
4)二维码扫描
5)过场动画
6)3003交易
多表查询实现药店选择:
select lm_addr.uid from lm_addr,lm_user where lm_addr.uid=lm_user.uid and lm_addr.stat=lm_user.stat and lm_user.stat='0' and lm_user.utype=1
and lm_user.addr_x=lm_addr.addr_x and lm_user.addr_y=lm_addr.addr_y and lm_user.addr_x between 116.95985193713561
and 116.99949806286439 and lm_user.addr_y between 36.63210778394081 and 36.65009421605919;
给出的模版中是不能进行多表查询的,使数据查询变得较为复杂。
补一下地理知识
经度0°——180°(东行,标注E)0°——180°(西行,标注W)
纬度0°——90°N、0°——90°S
3003交易总算完成了。
2015年7月28日 星期二 8:02:39 晴
抓紧进度。
昨天的工作没有完成,今日继续做。
今日工作安排:
1)二维码扫描
2)过场动画
3)放入购物车
2015年7月29日 星期三 8:04:42 晴
今日工作安排:
1)二维码扫描
2)过场动画
3)交易3004
Ps:等到业务交易实现的差不多的时候,要设计数据表的,包括主外键、查询效率等。
2015年7月30日 星期四 9:09:58 阴
今日工作安排:
1)二维码扫描
2)过场动画
3)交易3004
4)用户地址操作:CRUD80038004
进行到这里感觉遇到了瓶颈,前进一小步都很困难,关键是业务逻辑上欠缺了一点。
2015年7月31日 星期五 8:00:53 阴
还有3周的时间,感觉进步慢了下来。要抓紧进度。
今日工作安排:
1)二维码扫描
2)过场动画
3)优化UI(用户地址编辑)
4)购物车界面
5)优惠券交易 1005
2015年8月1日 星期六 8:25:05 阴
今日工作安排:
1)二维码扫描(L)
2)过场动画
3)优化UI(用户地址编辑)(L)
4)购物车界面(J)
5)用户注册验证码发送(J)
6)实现退出确定(J)
7)实现拨打电话(L)
8)优化价钱显示方式(J)
9)全部订单(订单详情)(LJ)
2015年8月2日 星期日 8:45:45 晴
今日工作安排:
1)二维码扫描(J)
2)过场动画
3)优化UI(用户地址编辑)(L)
4)购物车界面(J)
5)用户注册验证码发送(J)
6)实现退出确定(J)
7)实现拨打电话(L)
8)优化价钱显示方式(J)
9)全部订单(订单详情)(LJ)
10)优惠
获取优惠券业务逻辑好复杂。
用户注册时使用的公钥貌似与登陆时使用的公钥在一定时间之后,会变得不同。需要了解密钥生成方式。
解决方法:往数据库中存放时,调用了数据的数据加密方式。但存在一个
疑惑:公钥是不是变的?怎么变?
注:返回给客户端的公钥(是随时间变化的)只是对客户端数据进行加密,加密后的数据传至服务端,经过相应私钥解密,便可取得原始数据。写入数据库的数据由dbEncode()方法进行专门操作。
2015年8月3日 星期一 8:30:54 晴
今日工作安排:
1)二维码扫描(J)
2)过场动画
3)优化UI(用户地址编辑)(L)
4)购物车界面(J)
5)用户注册验证码发送(J)
6)实现退出确定(J)
7)优化价钱显示方式(J)
8)全部订单(订单详情)(LJ)
9)优惠
优惠模块完成后,必须设计测试用例。
2015年8月4日 星期二 8:44:09 阴
今日工作安排:
1)二维码扫描(J)
2)过场动画
3)优化UI(用户地址编辑)(L)
4)购物车界面(加入购物车,动画效果)(J)
5)用户注册验证码发送(J)
6)实现退出确定(L)
7)优化价钱显示方式(J)
8)全部订单(订单详情)(LJ)
9)优惠券选择(J)
10)登出清空localstorage(L)
11)提交订单
2015年8月5日 星期三 8:32:25 晴
今日工作安排:
1)二维码扫描(J)
2)过场动画
3)优化UI(用户地址编辑)(L)
4)购物车界面(加入购物车,动画效果)(J)
5)用户注册验证码发送(L)
6)实现退出确定(L)
7)优化价钱显示方式(J)
8)全部订单(订单详情)(LJ)
9)优惠券选择(J)
10)登出清空localstorage(L)
11)提交订单
2015年8月6日 星期四 8:35:30 雨
今日工作安排:
1)二维码扫描(J)
2)过场动画
3)优化UI(用户地址编辑)(L)
4)购物车界面(加入购物车,动画效果)(J)
5)用户注册验证码发送(L)
6)全部订单(订单详情)(LJ)
7)优惠券选择(J)
8)重置密码
9)慢性病自动提醒9013
10)查询药师电话9102(L)
11)维护家庭药箱(L)
2015年8月7日 星期五 8:32:00 晴
今日工作安排:
1)二维码扫描(J)
2)过场动画
3)优化UI(用户地址编辑)(L)
4)用户注册验证码发送(L)
5)全部订单(订单详情)(J) 9010
6)优惠券选择(J)
7)重置密码(L)
8)慢性病自动提醒 9013(L)
9)查询药师电话 9102(L)
10)维护家庭药箱 3008(L)
11)按药箱查询药品 9012(J)
12)上传处方 9008
13)订单状态修改 3006(J)
14)订单回显
15)用药提醒维护(J) 9013 9011
2015年8月8日 星期六 8:51:16 晴
今日工作安排:
1)二维码扫描(L)
2)过场动画
3)优化UI(用户地址操作显示方式)(L)
4)用户注册验证码发送(L)
5)优惠券选择(J)
6)慢性病自动提醒 9013(L)
7)查询药师电话 9102(L)
8)上传处方 9008
9)订单状态修改 3006(J)
10)订单回显(订单详情)(J)
11)用药提醒维护(J) 9013 9011
12)单选框、多选框(用户注册、购物车结算) (L)(BUG)
明天必须得跟小石哥交流一下,还有好多疑问没有解决呢。
2015年8月9日 星期日 8:47:41 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)优惠券选择(J)
5)慢性病自动提醒 9013(L)
6)查询药师电话 9102(L)
7)上传处方 9008
8)订单状态修改 3006(J)
9)订单回显(订单详情)(J)
10)用药提醒维护(J) 9013 9011
11)单选框、多选框(用户注册、购物车结算) (L)(BUG)
12)取消订单 3006(J)
13)发表评论 1005(J)
14)分享有券(L)
15)查看评论 9005(J)
2015年8月10日 星期一 8:32:01 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)优惠券选择(L)
5)慢性病自动提醒 9013(L)
6)查询药师电话 9102(L)
7)上传处方 9008
8)用药提醒维护(J) 9013 9011
9)单选框、多选框(用户注册、购物车结算) (L)(BUG)
10)发表评论 1005(J)
11)分享有券(L)
12)查看评论 9005(J)
13)优化药店选择(J)
闲来无事,把优惠券的选择模块利用程序流程图梳理一下业务逻辑,检查自己的逻辑是否正确。
整合文档
程序实现了莫名的错误,o(︶︿︶)o 唉,虚惊一场。(忘记截图了!)在执行生成数据表对应的方法时出现java.io.FileNotFoundException: C:\SHQ(文件名、目录名或卷标语法不正确。)。最后还是自己重新导入项目才将问题解决了。
2015年8月11日 星期二 8:49:23 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)优惠券选择(L)
5)慢性病自动提醒 9013(L)
6)查询药师电话 9102(J)
7)上传处方 9008
8)用药提醒维护(J) 9013 9011
9)单选框、多选框(用户注册、购物车结算) (L)(BUG)
10)药品图片处理
11)药品按销量排序
12)用户基本信息表(上次登陆时间-以秒计)
13)更正优惠券提醒方式
注:多家药店提供药品、积分消费、慢性病提醒模块要保留位置
注:jdk1.7之前的版本不支持switch-case
2015年8月12日 星期三 8:54:58 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)上传处方 9008
5)用药提醒维护(L) 9013 9011
6)单选框、多选框(用户注册、购物车结算) (L)(BUG)
7)药品图片处理
8)药品按销量排序(J)
9)用户基本信息表(上次登陆时间-以秒计)
10)更正优惠券提醒方式
注:更改数据访问数据表时必须采用加锁的形式,只有查询数据时才可以不加锁的形式访问。
2015年8月13日 星期四 9:01:55 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)上传处方 9008(J)
5)单选框、多选框(用户注册、购物车结算) (L)(BUG)
6)药品图片处理
7)药品按销量排序
8)用户基本信息表(上次登陆时间-以秒计)
9)更正优惠券提醒方式
10)用药提醒
11)附近药店 9006(L)
2015年8月14日 星期五 9:06:33 阴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)上传处方 9008(J)
5)单选框、多选框(用户注册、购物车结算) (L)(BUG)
6)药品图片处理
7)药品按销量排序
8)用户基本信息表(上次登陆时间-以秒计)
9)用药提醒(L)
10)广告图片(L)
注:
1.有关java的定时器、监听器自己还是要好好学习的,不会就会变被动,被动就要挨打!
2.定时器很奇妙啊,设置好时间点后自动执行,而且只执行一个小时。神奇!
2015年8月15日 星期六 9:00:23 阴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)上传处方 9008(J)
5)单选框、多选框(用户注册、购物车结算) (L)(BUG)
6)药品图片处理
7)药品按销量排序
8)用户基本信息表(上次登陆时间-以秒计)
9)用药提醒(L)
10)广告图片(L)(不明白地址到底怎么搞的)
注:jdk1.6在switch语句中变量不能为String类型,可以为int类型。Jdk1.7兼容两种类型格式。
药店选择30003交易较复杂,待做。
APP运行时占用内存达到200M,原因?
2015年8月16日 星期日 9:28:43 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)上传处方 9008(J)
5)单选框、多选框(用户注册、购物车结算) (L)(BUG)
6)药品按销量排序
7)用户基本信息表(上次登陆时间-以秒计)
8)用药提醒(J) 1012 1013
8+)用药提醒维护(L) 1009
9)地址回显(L)
9+)增加详细地址(L)
10)我的通知(L)
2015年8月17日 星期一 8:37:59 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)上传处方 9008(J)
5)单选框、多选框(用户注册、购物车结算) (L)(BUG)
6)药品按销量排序
7)用户基本信息表(上次登陆时间-以秒计)
8)用药提醒(J) 1012 1013
2015年8月18日 星期二 8:10:35 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)单选框、多选框(用户注册、购物车结算) (L)(BUG)
5)药品按销量排序
6)用户基本信息表(上次登陆时间-以秒计)
7)用药提醒日期校验(L)
2015年8月19日 星期三 8:29:15 阴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)单选框、多选框(用户注册、购物车结算) (L)(BUG)
5)药品按销量排序
6)用户基本信息表(上次登陆时间-以秒计)
7)用药提醒日期校验(L)
2015年8月20日 星期四 8:20:17 阴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)单选框、多选框(用户注册、购物车结算) (L)(BUG)
5)药品按销量排序
6)用户基本信息表(上次登陆时间-以秒计)
7)用药提醒日期校验(L)
回过头来看看数据库的生成过程,我表示没有看懂到底是如何实现的。
2015年8月21日 星期五 8:28:51 晴
今日工作安排:
1)过场动画
2)优化UI(用户地址操作显示方式)(L)
3)用户注册验证码发送(L)
4)单选框、多选框(用户注册、购物车结算) (L)(BUG)
5)药品按销量排序
6)用户基本信息表(上次登陆时间-以秒计)
7)用药提醒日期校验(L)
2015年8月29日 星期六 20:09:58 晴
2015年8月30日 星期日 8:17:05 晴
源码修改部分:
1.药师电话查询
2.附近药店
3.优惠券状态显示
2015年8月31日 星期一 20:54:11 雨
本地测试与部署在远程服务器上的结果不一致,怀疑是不是因为database部分代码的原因。
明天与小石再沟通一下吧,在本地运行的没有问题,放到服务器上有问题。
2015年9月1日 星期二 8:18:49 阴
把database部分替换掉,果然很明显的BUG去掉了。但是说明书、图片这些静态资源的绝对路径还是不对,是因为tomcat配置的路径问题。
接着把前台完成。加油!
不知道怎么搞的,前台就是出不来效果,狗血。
擦,原来是因为自己把angular.min.js、jquery.js文件删除的原因,。
2015年9月2日 星期三 17:02:52 雨
今日工作安排:
1)不同视图间的路由
2)新增药店
PS:前台使用angularJS不好搞啊。自己需要静下来思考。
现在自己遇到的问题在于angularjs的路由部分自己还没有搞懂。看书看得我迷迷糊糊的。
自己静下心来,今天一定要攻克下这一山头!
2015年9月3日 星期四 8:06:37 晴
今日工作安排:
1)不同视图间的路由
2)新增药店
3)搞清楚$stateProvider与$routeProvider的区别与联系?
4)web前端开发可否使用ionic框架,还是只能使用在移动app开发中?
5)在angularjs中,一个应用可以有几个np-app?
释疑:
3. one.After a very long time we decided to bite the bullet and migrate from 1.1.1 to 1.2. At the same time we realized how limited $routerProvider really
is so we went with ui-router. So far, we love it, it allows you to do some complex nesting in the views plus add a bit more structure to your app, for example,
in $stateProvider you can define onEnter and onExit which allows you to modify your data and restore it upon exiting, you can also transitionTo state
which is extremely powerful. I would vote for ui-router to be part of Angular core and even replace $routeProvider. I hope this helps you made up your mind. $routeProvider still works,
if you have a basic app or demo page.
two.We started with $routeProvider and moved to $stateProvider to leverage some of the features that ui-router provides. When we moved the migration was absolutely trivial. Having said that, ui-router is still very early (from their GitHub page):
Warning: UI-Router is pre-beta and under active development. As such, while this library is well-tested, the API is subject to change. Using it in a project that requires guaranteed stability is not recommended.
Stick with $routeProvider until you decide you need something else. Until then, make sure you are getting good test coverage so that shifts like
that aren't too big of a concern.
原来:$stateProvider与$routeProvider是使用在两个js文件中的,$stateProvider包含在angular-ui-router.js中,$routeProvide包含在angular-router.js中,
看你引入的是哪一个js文件了。网上说,$routeProvider更稳定一些,如果没有特殊的需求,还是应该使用$routeProvider。
4. ionic框架是应用在移动app开发中的ui框架,应用在web前端开发中并不合适。
2015年9月4日 星期五 7:48:50 晴
今日工作安排:
1)不同视图间的路由
2)新增药店
3)在angularjs中,一个应用可以有几个np-app?
4)将项目架构重新设计一下,记得及时保存版本
看着看着自己就慢慢体会到angularjs其实是一种MVC设计模式的含义了。而Bootstrap仅仅是页面设计工具类而已,可以为angularjs所用。
居然被浏览器给耍了,浏览器可能有缓存,才导致出现莫名其妙的错误,。一定要汲取这一教训。
2015年9月5日 星期六 8:00:21 晴
今日工作安排:
1)不同视图间的路由
2)新增药店
3)在angularjs中,一个应用可以有几个np-app?
4)将项目架构重新设计一下,记得及时保存版本
败给页面间传值了!
2015年9月6日 星期日 8:44:55 阴
今日工作安排:
1)不同视图间的路由
2)新增药店
3)在angularjs中,一个应用可以有几个np-app?
4)其他页面路由
PS:悲剧了,不知怎么的,电脑出问题了,数据库中的数据出现了异常,项目中js文件夹中全部js文件消失了,一定要及时备份啊。
2015年9月7日 星期一 8:02:59 晴
今日工作安排:
1)不同视图间的路由
2)新增药店
3)在angularjs中,一个应用可以有几个np-app?
4)其他页面路由
5)看懂appCallServer()方法
PS:数据库的读操作没有问题,接下来就是数据库的写操作了。
2015年9月8日 星期二 7:51:13 晴
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店信息查询、删除
2015年9月9日 星期三 7:14:04 阴
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店信息查询、删除
PS:千辛万苦终于把页面间传值问题解决了。
2015年9月10日 星期四 9:23:48 阴
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店信息查询
3)完成药店删除(保留)
4)完成新增优惠
5)实现下拉列表、复选框
2015年9月11日 星期五 8:24:40 小雨
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店删除(保留)
3)实现下拉列表、复选框
4)实现服务端药店管理前台
2015年9月13日 星期日 19:15:44 晴
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店删除(保留)
3)实现服务端药店管理前台
2015年9月14日 星期一 8:19:27 晴
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店删除(保留)
3)实现服务端药店管理前台
2015年9月15日 星期二 7:27:34 晴
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店删除(保留)
3)实现服务端药店管理前台
2015年9月16日 星期三 7:18:58 晴
今日工作安排:
1)在angularjs中,一个应用可以有几个np-app?
2)完成药店删除(保留)
3)实现服务端药店管理前台
PS:有时间自己一定要学学版本控制管理工具的。
注:
路由时url必须保证唯一性,否则会出现页面覆盖情况。
存在的问题:
1.修改完优惠信息后,点击左侧列表回到首页。路由出现问题。
原因:与前面遇到的问题相同,原因亦相同,都是存在网页覆盖,重定向一下url,问题迎刃而解。
<a ui-sref="shopDtlManag" class="btn btn-success btn-mini" id="butAdd" ng-click="onAdd()">新增药店</a>
文章来源: shq5785.blog.csdn.net,作者:No Silver Bullet,版权归原作者所有,如需转载,请联系作者。
原文链接:shq5785.blog.csdn.net/article/details/48527989
- 点赞
- 收藏
- 关注作者
评论(0)