我正在研究Angular项目。我正在从一个页面路由到另一个页面。我写了两个函数。在第一个我已经通过queryParams,而在第二个函数中我只路由到另一个函数,如下所示。
onEdit(event) {
console.log(event.data);
this.router.navigate(['pages/details'], {queryParams: event.data});
}
addData() {
this.router.navigate(['pages/details']);
}
但是当我调用这个函数时,我在两个函数中都获得了参数
<nb-card-body>
<button mat-button class="btn edit btn-success " style="margin-left: 400px;" (click)="addData()"><i class="nb-plus"></i></button>
<ng2-smart-table [settings]="settings" [source]="source" (edit)="onEdit($event)" (deleteConfirm)="onDeleteConfirm($event)">
</ng2-smart-table>
</nb-card-body>
当我在.html中调用addData()时,它将路由到详细信息页面,如下所示
export class DetailsComponent {
data: any;
isAddPage: boolean = true;
constructor(private route: ActivatedRoute, private service: SmartTableService, private router: Router) {
this.route.queryParams.subscribe(params => {
this.data = params;
console.log(params);
if (this.data == null)
this.isAddPage = true;
else
this.isAddPage = false;
});
console.log(this.data);
console.log(this.isAddPage);
}
}
虽然在addData()上它不应该传递任何数据,但它在控制台
中给我如下{}__proto__: constructor: ƒ Object()hasOwnProperty: ƒ hasOwnProperty()isPrototypeOf: ƒ isPrototypeOf()propertyIsEnumerable: ƒ propertyIsEnumerable()toLocaleString: ƒ toLocaleString()toString: ƒ ()valueOf: ƒ valueOf()__defineGetter__: ƒ __defineGetter__()__defineSetter__: ƒ __defineSetter__()__lookupGetter__: ƒ __lookupGetter__()__lookupSetter__: ƒ __lookupSetter__()get __proto__: ƒ __proto__()set __proto__: ƒ __proto__()
details.component.ts:35 {}__proto__: Object
details.component.ts:36 false
任何帮助?