Angular 对象内的数据更改时,子组件未更新
我有一个已定义路由的AppComponent。 在这方面,我有一个类似于Angular 对象内的数据更改时,子组件未更新,angular,routes,nested-routes,Angular,Routes,Nested Routes,我有一个已定义路由的AppComponent。 在这方面,我有一个类似于Home/Scan/:name的设置,其中我有多个名称,它们调用不同的GET服务,该服务接受name作为参数 我已经将[routerLink]=“['Scanning',r.name]”定义为一个链接。我的子组件未使用新数据刷新。请告诉我我做错了什么 const routes: Routes = [ { path: 'Home', component: ReportComponent,children:[ { path: '
Home/Scan/:name
的设置,其中我有多个名称,它们调用不同的GET服务,该服务接受name作为参数
我已经将[routerLink]=“['Scanning',r.name]”
定义为一个链接。我的子组件未使用新数据刷新。请告诉我我做错了什么
const routes: Routes = [
{ path: 'Home', component: ReportComponent,children:[
{ path: 'Scanning', component: ScanningOutputComponent},
{ path: 'Scanning/:name',component: ScanningOutputComponent }
]},
{ path: '',redirectTo:'Home', pathMatch:'full' },
{ path: '**',redirectTo:'Home', pathMatch:'full' }
];
更新代码
从ReportComponent接收以下代码的参数
this.aRoute.params.subscribe(params => this.sub = params['name']);
switch (this.sub) {
case 'All':
this.http.get('http://192.168.117.107:8080/rest/ScanningOutput/all')
.subscribe(data => {
this.scanningdata = data;
//console.log(data);
});
break;
case 'POD':
this.http.get('http://192.168.117.107:8080/rest/ScanningOutput/ByDevice/POD')
.subscribe(data => {
this.scanningdata = data;
//console.log(data);
});
break;
case 'PUP':
this.http.get('http://192.168.117.107:8080/rest/ScanningOutput/ByDevice/PUP')
.subscribe(data => {
this.scanningdata = data;
//console.log(data);
});
break;
case 'REX':
this.http.get('http://192.168.117.107:8080/rest/ScanningOutput/ByDevice/REX')
.subscribe(data => {
this.scanningdata = data;
//console.log(data);
});
break;
default:
console.log("invalid");
break;
}
您已经在定义路由的位置写入了
scanning
,并且正在routerlink中通过scan
您已经在定义路由的位置写入了scanning
,并且正在routerlink中通过scan
尝试在订阅部分中声明交换机:
this.aRoute.params.subscribe(params => {
this.sub = params['name'];
switch (this.sub) {
case 'All':
this.http.get('http://192.168.117.107:8080/rest/ScanningOutput/all')
.subscribe(data => {
this.scanningdata = data;
//console.log(data);
});
break;
...
default:
console.log("invalid");
break;
}
});
尝试在subscribe节内声明开关:
this.aRoute.params.subscribe(params => {
this.sub = params['name'];
switch (this.sub) {
case 'All':
this.http.get('http://192.168.117.107:8080/rest/ScanningOutput/all')
.subscribe(data => {
this.scanningdata = data;
//console.log(data);
});
break;
...
default:
console.log("invalid");
break;
}
});
当我第一次调用routerLink时,路由工作,但当我传递其他值并从get API获取数据时,我的视图不会用新数据刷新。当我第一次调用routerLink时,路由工作,但当我传递其他值并从get API获取数据时,我的视图不会用新数据刷新。路由应该是数组更新我的代码。请就更新的代码提出建议。当我第一次调用routerLink时,路由是有效的,但当我传递其他值并从get API获取数据时,我的视图不会用新数据刷新。开关不在此范围内。aRoute.params.subscribe。它不会在每次更新此文件时运行。子例程应为arrayupdated my code。请就更新的代码提出建议。当我第一次调用routerLink时,路由是有效的,但当我传递其他值并从get API获取数据时,我的视图不会用新数据刷新。开关不在此范围内。aRoute.params.subscribe。它不会在每次更新此.sub时运行