发表于: 2017-06-09 23:06:11
2 784
今天完成的事情
- 1. 通过中间人模式将数据从
searchComponent
传到detailComponemt
.
a.首先在searchComponent
中通过@Output
属性注释一个输出属性:
@Output()searchText: EventEmitter<URLSearchParams> = new EventEmitter();
b. 通过点击搜索按钮将searchText
发射出去:
public goSearch(formData): void {this.searchText.emit(this.sortData(formData));}
c. 这样我们就可以在父组件NavbarDeatilComponent
中去通过事件绑定获取子组件searchComponent
发射出来的事件:
<app-search (searchText)="getSearchText($event)"></app-search>
GetSearchText()
是我们定义在父组件中的一个方法:
public getSearchText(event: URLSearchParams) {this.searchText = event;}
2. 通过GetSearchText()
方法我们得到了searchText
事件(属性),
d. 通过属性绑定将NavbarDeatilComponent
得到的searchText
传给detailComponemt
组件:
<app-details [searchText] = "searchText"></app-details>
c. 在子组件中通过@Input
将NavbarDeatilComponent
组件中得到的searchText
传入到detailComponemt
组件中:
@Input()searchText: URLSearchParams;
这样,我们便从searchComponent
拿到了搜索参数。就可以使用这个参数来发起请求。
d. 虽然我们拿到了搜索参数,点击搜索参数也会自动更新,但是,参数更新之后并不会自动发送get
请求。所以我们还需要再做另外一件事情:
ngOnChanges() {this.getArticle = this.getService.getData(httpList.get.pullArticle, String(this.searchText)).subscribe(data => {this.articleList = data;console.log(this.articleList)});}
OnChanges
钩子是angular2
自带的变化监测方法,该方法用来监测父组件到子组件的属性绑定参数变化,当参数发生改变之后此方法将被执行。
- 引入
ngx-bootstrap
的pagination
插件,有些问题。
明天计划的事情
解决分页插件的问题。看看任务要求。
遇到的问题
问题就是分页插件的问题:
a. 双向绑定的页码,改变页码后对应页码的样式没有改变;
b. 看了半天才弄懂这个是插件的输出属性:
pageChangedfired when page was changed, $event:{page, itemsPerPage} equals to object with current page index and number of items per page
那么它这么使用:(pageChanged)="pageChanged($event)"
page
发生改变时触发该方法。这个时候就可以再次发送请求获取数据。
先把page
写到searchText
里面:this.searchText.set('page', String(page));
然后就报错了,set
不是一个方法?
等我再看看哪里出了问题。
收获
不知道都干了什么。时间规划完全没用。
评论