Angular 6-刷新组件

时间:2018-08-26 21:43:11

标签: angular

我在我的角度页面顶部的标题组件中有一个搜索框。

当用户在我的搜索框中提交值时,我导航到搜索结果页面:

public class MediaWebView extends WebView {

   public MediaWebView(Context context) {
       super(context);
   }

   public MediaWebView(Context context, AttributeSet attrs) {
       super(context, attrs);
   }

   public MediaWebView(Context context, AttributeSet attrs, int defStyleAttr) {
       super(context, attrs, defStyleAttr);
   }

   @Override
   protected void onWindowVisibilityChanged(int visibility) {
       if (visibility != View.GONE) super.onWindowVisibilityChanged(View.VISIBLE);
   }

}

这是我的结果页:

export class SearchFormComponent {

  constructor(
    private router: Router) { }


  submit(f) {
    this.router.navigateByUrl(`search?q=${f.searchTerm}`);
  }
}

这在第一次搜索中效果很好,但是如果用户在搜索页面上并再次从标题运行搜索,则它将无法工作。解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

Angular的路由器具有一个onSameUrlNavigation事件,该事件用于知道何时请求该路由器导航到相同的url,以便您可以手动刷新组件。

this.router.onSameUrlNavigation(()=>{
  //do your things here
})