发表于: 2017-06-13 22:02:25
2 997
2017-06-13 Day084
今天完成的事情
debug了一天。
- 1. 无意中修改的get请求中的一个方法,导致搜索条件无法无法发送,调了两三个小时;
- 2. 完成删除功能。使用delete请求删除数据,总是提示DELETE不是一个有效的方法,要么就是提示请求被拒绝。用postman测试发现delete请求的url是
/a/article/1211
这样的格式,但是使用URLSearchParams的set方法,装换成字符串后参数默认是/a/article?id=1211
这样的格式,也就是query格式。所以只能往链接后面直接加id发送。。
public deleteData(url: string, deleteText: number | string): Observable<any> {url += deleteText;console.log('this deleteService get deleteText is :' + url);return this.http.delete(url).map(this.extractData).catch(this.handleError)}
- 完成改变文章上下线操作,这个部分的逻辑,不知道这样写好不好:
a. 先显示操作提示框
/*** alert message / online/offline table ------------------------------------------------------------------------------* */public alertMsg(i: number, modal) {console.log('选择的是 :' + i + 1);// save index in global varthis.indexCache = i;this.modalCache = modal;let ii = this.articleList.data.articleList[i];//chang template displaythis.statusDisplay = (ii.status == 1) ? 2 : 1;modal.show();}
b. 等待操作
public imNotSure(): void {this.modalCache.hide();}public imSure():void {this.changeStatus();}
c. 按照操作执行动作:
/*** let article online or offline* http put method ------------------------------------------------------------------------------* */public changeStatus(): void {let i = this.indexCache;let ii = this.articleList.data.articleList[i];ii.status == 2 ? this.letOffline(ii) : this.letOnline(ii);}// set put params status = 2 $ putData() // '1' draft / '2' onlinepublic letOnline(ii: any): void {let putText: URLSearchParams = new URLSearchParams();putText.set('id', String(ii.id));putText.set('status', '2');this.putData(putText);console.log('online finished');}// set put params status = 2 $ putData() // '1' draft / '2' onlinepublic letOffline(ii: any): void {let putText: URLSearchParams = new URLSearchParams();putText.set('id', String(ii.id));putText.set('status', '1');this.putData(putText);console.log('offline finished');}// http --> putprivate putData(putText: URLSearchParams) {console.log('putting response is : ');console.log(String(putText));this.putFun = this.putService.putData(CHANGE, putText).subscribe(res => {this.putMsg = res;console.log('got putService data is : ');console.log(this.putMsg);});if (this.putMsg) {console.log('修改状态是否成功 :' + this.putMsg.message);this.putMsg.message == 'success' ? this.putSuccess() : this.putFailed();}}private putSuccess(): void {this.modalCache.hide();this.goSearch();console.log("put success");}private putFailed(): void {console.log("put failed");
明天计划的事情
- 额。。完成编辑article部分。
遇到的问题
在上下线操作的提示框第一次弹出的时候需要点击两次确定才能隐藏提示框,第一次以后没有问题。但是点击两次也会发送两次请求。这个暂时还没找到原因。
收获
http的get
和delelt
方法的参数都是相同的类型,为什么按照接口两个请求发送的数据格式不同,就像上面的那样
get(url: string, options?: RequestOptionsArgs): Observable<Response>;delete(url: string, options?: RequestOptionsArgs): Observable<Response>;
评论