如何在离子3 pwa中定义可选参数?
我当前的@IonicPage
装饰器看起来像:
@IonicPage({
segment: "landing/:id"
})
但是id
参数必须是可选的。如果我不通过id
,我会收到此错误:
undured(在承诺中):插入无效的视图
如何做?
预先感谢!
尚无方法。当您不需要时,您需要发送空字符串。
this.navCtrl.push('landing', {
'id': ''
})
由于带有角度的离子4:一种解决方案是分辨率的分辨率,在这里,URL中有两个可选ID:
{ path: 'landing', loadChildren: () =>
import("./landing/landing.module").then(m => m.LandingPageModule)},
{ path: 'landing/:id1', loadChildren: () =>
import("./landing/landing.module").then(m => m.LandingPageModule)},
{ path: 'landing/:id1/:id2', loadChildren: () =>
import("./landing/landing.module").then(m => m.LandingPageModule)}
始终是相同的目标。魔术将从组成部分开始:
import { ActivatedRoute, Router } from "@angular/router";
@Component({
selector: "landing",
templateUrl: "./landing.page.html",
styleUrls: ["./landing.page.scss"]
})
export class landingPage implements OnInit {
constructor(
private route: ActivatedRoute,
private router: Router
) {}
ngOnInit() {
let id1= this.route.snapshot.paramMap.get("id1");
let id2= this.route.snapshot.paramMap.get("id2");
// Test
if (id1) console.log(id1);
if (id2) console.log(id2);
}
}
和从页面到页面:
this.router.navigateByUrl('/landing');
this.router.navigateByUrl('/landing/' + '123');
this.router.navigateByUrl('/landing/' + '123/333');
订单很重要,因此将后斜线留在第一个路径上。