当前位置: 首页 > 知识库问答 >
问题:

如何在Angular〔duplicate〕中的路由之间推送数据

澹台镜
2023-03-14

假设在route /items/中给了我一个< code>item-list数组。item-list.component.html看起来像这样:

<div *ngFor="let item of items">
    ....
  <a [routerLink]="'/items/' + item.id">View Item</a>
</div>

我试图做的是将对象从项目列表数组推送到下一页(或路由/items/:item-id.

目前,我有它的方式建立与2资源

我意识到有一个不必要的API调用

我将如何处理这个问题?

注意:在Ionic3中可以这样做:< code>navCtrl.push('ItemPage ',{ item:item });

共有2个答案

谷梁弘深
2023-03-14

注意:在Ionic3中,可以这样做:navCtrl。推送('ItemPage',{item:item});

你可以用路由器做同样的事情:

this.router.navigate(['./item-page', {item: item}]);

然后在您的下一页中,将其添加到ngOnInit

ngOnInit() {
    this.route.params.subscribe(params => {
       console.log(params);
    });
  }
卫烨烁
2023-03-14

使用服务。除了简单的值之外,您不能将数据传递给路线。

export class FirstComponent {
   constructor(private someService: SomeService){}

   someMethod(item) {
     this.someService.currentItem = item;
   }
}

export class SomeService {
  currentItem: any;
}

export class SecondComponent {
   constructor(private someService: SomeService){}

   someMethod() {
    // now you have the item
    this.currentItem.....
    }
}

使用方法将项目重定向并添加到服务,而不是route链接到路由:

所以而不是

<a routerLink

做的事:

*ngFor="let item of items"
<button (click)="route(item)"

myMethod(item) {
  this.someService.currentItem = item;
  this.router.navigate('/route....')
}

语法不准确;这只是一个例子

 类似资料:
  • 是否可以创建一个全局历史文件来管理react-router-dom v5上的createBrowser历史()?我知道V5有使用历史()作为获取历史的一种方式。但是有没有可能从任何地方检索历史记录,比如我没有使用函数组件的情况? 在V4上,我可以创建一个文件history.js: 它在V4上工作https://codesandbox.io/s/react-router-v4-nfwr0 它在V5上

  • 本文向大家介绍详解Angular路由之路由守卫,包括了详解Angular路由之路由守卫的使用技巧和注意事项,需要的朋友参考一下 一、路由守卫 当用户满足一定条件才被允许进入或者离开一个路由。 路由守卫场景: 只有当用户登录并拥有某些权限的时候才能进入某些路由。 一个由多个表单组成的向导,例如注册流程,用户只有在当前路由的组件中填写了满足要求的信息才可以导航到下一个路由。 当用户未执行保存操作而试图

  • 注意:这里有很多不同的答案,而且大多数在某个时候都是有效的。事实上,当Angular团队改变其路由器时,工作的方式已经改变了很多次。Router3.0版本将最终成为Angular中的路由器,它打破了许多这些解决方案,但提供了一个非常简单的解决方案。从RC.3开始,首选解决方案是使用,如本答案所示。 在Angular应用程序中(我写这篇文章的时候是2.0.0-Beta.0版本中的最新版本),如何确定

  • 我正在查找在我的中检测路由更改。 此后,我将检查全局用户令牌,看看他是否已登录。然后我可以重定向用户,如果他没有登录。

  • 问题内容: 在AngularJS中,我看到有时使用有时使用。谁能告诉我它们的区别以及何时应使用另一种? 问题答案: 您是指AngularUI路由器吗?如果是这样,则Wiki 指定差异: $ state.go(至[,toParams] [,选项]) 返回表示过渡状态的 Promise 。 过渡到新状态的便捷方法。内部调用,但会自动将选项设置为。这样,您可以轻松地使用绝对路径或相对路径,并仅指定要更新

  • 在Angular 1.x.x中,您只需请求相同的服务,并以相同的实例结束,这使得在服务中共享数据成为可能。 现在在Angular 2中,我有了一个引用我的服务的组件。我可以读取和修改服务中的数据,这很好。当我试图在另一个组件中注入相同的服务时,似乎得到了一个新的实例。 我做错了什么?是模式本身有问题(使用服务共享数据)还是我需要将服务标记为单例(在应用程序的一个实例中)或其他? 我在 btw上 我