Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度5:防止在参数更改时重新加载组件_Javascript_Angular_Angular5_Angular Routing - Fatal编程技术网

Javascript 角度5:防止在参数更改时重新加载组件

Javascript 角度5:防止在参数更改时重新加载组件,javascript,angular,angular5,angular-routing,Javascript,Angular,Angular5,Angular Routing,我有一个路由/search,里面有两个组件;一个是带有搜索结果的搜索框,另一个是应该出现在每个页面上的新闻提要,与搜索无关。如果执行搜索并将参数附加到url,则结果将显示在搜索框下方,但在重新初始化页面/组件后,新闻提要也将重新初始化,必须再次获取相同的数据(这是一项长期运行的任务) 如何更新url以反映一个组件的状态更改,而不在页面上重新呈现另一个组件 angularjs过去有reloadOnSearch:false,这可以解决这个问题,尽管是一种草率的方式 编辑:是否最好将返回的结果存储在服

我有一个路由
/search
,里面有两个组件;一个是带有搜索结果的搜索框,另一个是应该出现在每个页面上的新闻提要,与搜索无关。如果执行搜索并将参数附加到url,则结果将显示在搜索框下方,但在重新初始化页面/组件后,新闻提要也将重新初始化,必须再次获取相同的数据(这是一项长期运行的任务)

如何更新url以反映一个组件的状态更改,而不在页面上重新呈现另一个组件

angularjs过去有
reloadOnSearch:false
,这可以解决这个问题,尽管是一种草率的方式

编辑:是否最好将返回的结果存储在服务中,然后在路由更改时,再次从服务中获取最后一个结果?如果是这样,将如何做到这一点

编辑:因为
cgTag
已链接到。可以使用指定的插座。我没有看到任何内容在哪里的出路应该

path: 'search', component: SearchComponent, children: [
  { path: 'view', component: ClientNewsFeedComponent, outlet: 'client-news-feed' }
]
app-routing.module.ts

const routes: Routes = [
  { path: 'search', component: SearchComponent },
  { path: 'view', component: ClientNewsFeedComponent, outlet: 'client-news-feed' }
]; 
search.component.html

<div>
  <cc-search-client-field></cc-search-client-field>
  <router-outlet name="client-news-feed"></router-outlet>
</div>
url应该有一个/


/搜索/(客户端新闻提要:查看)

您可能希望使用路线的
出口
功能


这允许您在不更改当前管线的情况下渲染次管线。然后,您将使用第二条路线显示搜索结果。

非常感谢您将此链接。我已经更新了我的问题,因为我在使用命名路由器插座时遇到了一个问题