如何在离子页面中定义可选段参数



如何在离子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');

订单很重要,因此将后斜线留在第一个路径上。

相关内容

  • 没有找到相关文章

最新更新