gpt4 book ai didi

javascript - 通过检查是否存在一系列不起作用的字符,在 url 上运行 ".includes"

转载 作者:行者123 更新时间:2023-11-28 18:10:59 24 4
gpt4 key购买 nike

我正在尝试有条件地将一些数据填充到路由中,具体取决于该特定路由的 URL 在我的 Angular 2 应用程序中是否具有特定前缀。假设这样的路线:

"http://localhost:4200/staff/e9a54desc2bea54l3"

为了检查这一点,我从我的 RouteService 文件运行此函数:

  isRoomRoute(routeUrl) {
if (this.url.includes('staff')) {
console.log('This url: ' + routeUrl + ' is a roomRoute');
} else {
console.log('This url: ' + routeUrl + ' is NOT a room route');
}
}

这连接到我的app.component(它正在导入routeService文件并在构造函数中使用它),它正在注册路线更改,然后调用我的“isRoomRoute”函数,如下所示:

constructor(private routeService: RouteService,
private router: Router) {

this.router.events.subscribe((route) => {
let routeUrl = route.url;
this.routeService.sendRoute(routeUrl);
this.routeService.isRoomRoute(routeUrl);
});
}

目前,我得到的结果似乎不符合我正在检查的条件参​​数。换句话说,该函数以意想不到的方式返回 true 或 false,这似乎不依赖于特定 URL 中的字符。

例如,如果我为此路线运行此命令:

http://localhost:4200/staff/321e8a56ar6s

我在控制台中得到这个结果:

This url: /staff/321e8a56ar6s is NOT a room route

显然这不是预期的结果,因为根据函数逻辑,我应该得到一个肯定的响应,这是一个房间结果,因为它在评估的网址中包含“staff”:

  isRoomRoute(routeUrl) {
if (this.url.includes('staff')) {
console.log('This url: ' + routeUrl + ' is a roomRoute');
} else {
console.log('This url: ' + routeUrl + ' is NOT a room route');
}
}

我知道正在传递 URL,因为它是我在控制台中看到的控制台日志的一部分。那么我错过了什么导致这个功能无法按预期工作?

最佳答案

isRoomRoute 函数中的 If 语句正在检查 this.url (routeService 属性?),而不是 routeUrl(传递的网址)。

关于javascript - 通过检查是否存在一系列不起作用的字符,在 url 上运行 ".includes",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41576806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com