导航到任何路线并直接转到组件时,是否可以跳过(针对组件的)解析器?

时间:2019-01-29 07:28:11

标签: angular angular-router

你好,我是新手,陷入困境。我有一个名为OrderDetailComponent的组件和一个名为OrderDetailResolver的解析器,顾名思义,解析器解析订单明细组件的数据并将其传递给它。我在浏览router.navigate(['order', myorder.id, 'detail']);时遇到一种情况,我不希望OrderDetailResolver解析数据并直接转到OrderDetailComponent

我在互联网上搜索,但没有找到任何解决方案。是的,我可以在查询参数中传递一些数据,然后为解析器签入,然后跳过该过程并从解析器返回。但是我想知道是否有一种解决方案可以完全跳过OrderDetailResolver

1 个答案:

答案 0 :(得分:0)

您可以通过以下方法解决此问题

在解析器内部

this.router.navigateByUrl('/some-url', {state: {
                skipResolver: true,
            }})

在导航时您可以做

db.ServiceStatus.insertOne(
   {
      CustomerName: "the name",
      message: [{ sender: "Customer", content: "some content", time: new Date() }]
   }
);

db.ServiceStatus.updateOne(
   { CustomerName: "the name" },
   {
      $push: {
         message: { sender: "Another customer", content: "more content", time: new Date() }
      }
   }
)

db.ServiceStatus.find()   

{ 
    "_id" : ObjectId("5fdc4f14d1d3de1f92780a0b"), 
    "CustomerName" : "the name", 
    "message" : [
        {
            "sender" : "Customer", 
            "content" : "some content", 
            "time" : ISODate("2020-12-18T07:41:24.166+0100")
        }, 
        {
            "sender" : "Another customer", 
            "content" : "more content", 
            "time" : ISODate("2020-12-18T07:41:26.328+0100")
        }
    ]
}