发表于: 2017-06-09 23:06:11

2 784


2017-06-10 Day080

今天完成的事情

  1. 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. 在子组件中通过@InputNavbarDeatilComponent组件中得到的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自带的变化监测方法,该方法用来监测父组件到子组件的属性绑定参数变化,当参数发生改变之后此方法将被执行。

  1. 引入ngx-bootstrap的 pagination插件,有些问题。

明天计划的事情

解决分页插件的问题。看看任务要求。

遇到的问题

问题就是分页插件的问题:
a. 双向绑定的页码,改变页码后对应页码的样式没有改变;
b. 看了半天才弄懂这个是插件的输出属性:

pageChanged
fired 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不是一个方法?
等我再看看哪里出了问题。

收获

不知道都干了什么。时间规划完全没用。



返回列表 返回列表
评论

    分享到