GVKun编程网logo

使用 anguler ActivatedRouter 快照参数获取 json(angular获取url)

16

在本文中,您将会了解到关于使用angulerActivatedRouter快照参数获取json的新资讯,同时我们还将为您解释angular获取url的相关在本文中,我们将带你探索使用angulerAc

在本文中,您将会了解到关于使用 anguler ActivatedRouter 快照参数获取 json的新资讯,同时我们还将为您解释angular获取url的相关在本文中,我们将带你探索使用 anguler ActivatedRouter 快照参数获取 json的奥秘,分析angular获取url的特点,并给出一些关于ActivatedRoute始终指向NgRx效果中的根、Anaconda 使用 conda activate 激活环境报错 Your shell has not been properly configured to use ''conda activate''.、Angular - 从 CanActivate 中的 Observable 服务获取布尔值 更新:来自isActiveUser()的附加逻辑、Angular 2,从不为实现OnActivate的组件调用routerOnActivate方法的实用技巧。

本文目录一览:

使用 anguler ActivatedRouter 快照参数获取 json(angular获取url)

使用 anguler ActivatedRouter 快照参数获取 json(angular获取url)

默认情况下,在路由参数更改时,angular 只会更新 URL 而不会更新组件。 所以这可以通过以下方式解决。

更改组件处的 routeReuseStrategy:

constructor(private router: Router) { 
  this.router.routeReuseStrategy.shouldReuseRoute = () => false; 
}

或者在参数改变时重置组件的状态:

this.route.params.subscribe(params => {
   this.pathUrl = params['pathUrl'];
  // this.fact = await this.factsService.getFactsAsync ...
});
,

您需要订阅参数更改。

this.route.params.subscribe(params => {
    this.pathUrl = params['pathUrl'];
});

ActivatedRoute始终指向NgRx效果中的根

ActivatedRoute始终指向NgRx效果中的根

如何解决ActivatedRoute始终指向NgRx效果中的根?

我试图弄清楚为什么我的ngrx效果中的ActivatedRoute总是指向根,其“ .url”总是返回path: ''''的Observable。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Anaconda 使用 conda activate 激活环境报错 Your shell has not been properly configured to use ''conda activate''.

Anaconda 使用 conda activate 激活环境报错 Your shell has not been properly configured to use ''conda activate''.

在 vs code 下打开终端会报错 Your shell has not been properly configured to use ''conda activate''.

解决方法:

1、激活环境

#激活环境
source activate

2、退出环境

conda deactivate

3、激活 base

conda activate base

 h 好像这个办法只能短暂的解决问题,再打开还是会出现,最后从 anaconda navigator 界面卸载 vs code 再安装就没问题了......

Angular - 从 CanActivate 中的 Observable 服务获取布尔值 更新:来自isActiveUser()的附加逻辑

Angular - 从 CanActivate 中的 Observable 服务获取布尔值 更新:来自isActiveUser()的附加逻辑

如何解决Angular - 从 CanActivate 中的 Observable 服务获取布​​尔值 更新:来自isActiveUser()的附加逻辑?

我正在尝试获取布尔值并将其以 angular 形式返回到 CanActivate 内。

这是我的示例服务:

isActiveUser<bool>(){
    return this.http.get<boolean>(apiGetUserStatus);
}

这是我的canActivateMethod

canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshow): Observable<boolean> | Promise<boolean> | boolean){
    var status = this.myService.isActiveUser().subscribe((active: boolean)=>{
        return active;
    })

    return status;
}

不幸的是,当我尝试控制台记录 status 时,它显示了可观察的内容,而不是实际的布尔值。对此有什么帮助吗?

解决方法

canActivate 也可以返回一个 observable。因此,只需以这种方式更改您的代码。

canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot): boolean | Observable<boolean> | Promise<boolean> {
        const subject = new Subject<boolean>();
        this.myService.isActiveUser().subscribe((result) => {
            subject.next(result);
        });
        return subject;
    }
,

尝试只返回 isActiveUser() 函数。

canActivate(
  route: ActivatedRouteSnapshot,state: RouterStateSnapshow
): Observable<boolean> {
  return this.myService.isActiveUser();
}

更新:来自isActiveUser()的附加逻辑

您可以使用 maptap 等 RxJS 运算符来转换数据或根据 isActiveUser() 的结果执行某些效果。

canActivate(
  route: ActivatedRouteSnapshot,state: RouterStateSnapshow
): Observable<boolean> {
  return this.myService.isActiveUser().pipe(
    map((activeUser: boolean) => {
      // do something
      return isUserAdmin();   // <-- eg.: function that returns boolean
    }),tap((user: boolean) => {
      // do some side-effects
      // tap doesn''t have to return anything
    }),switchMap((user: boolean) => {
      // you could also map to another observable using `switchMap`
      return someFunc(); // <-- eg: function returns an `Observable<boolean>`
    })
  );
}

Angular 2,从不为实现OnActivate的组件调用routerOnActivate方法

Angular 2,从不为实现OnActivate的组件调用routerOnActivate方法

我正在尝试使用Angular 2 Router记录当前路由,使用官方文档中的示例代码: https://angular.io/docs/ts/latest/api/router/OnActivate-interface.html
import {Component} from 'angular2/core';
import {
    OnActivate,ComponentInstruction
} from 'angular2/router';


@Component({selector: 'header-title',template: `<div>routerOnActivate: {{log}}</div>`})
export class HeaderTitle implements OnActivate {
    log: string = '';

    routerOnActivate(next: ComponentInstruction,prev: ComponentInstruction) {
        console.log('hello on activate');
        this.log = `Finished navigating from "${prev ? prev.urlPath : 'null'}" to "${next.urlPath}"`;
    }
}

从不调用方法routerOnActivate.

我使用RouteConfig注释配置了路由:

@RouteConfig([
    {path: '/',component: Home,name: 'Index',data: {title: 'Index page'}},{path: '/home',name: 'Home',data: {title: 'Welcome Home'}},{path: '/**',redirectTo: ['Index']}
])

我应该在路由器中配置其他东西来激活监听器吗?

您需要在解析路径的组件中实现routerOnActivate方法.在您的示例中,如果您在Home Component中实现它,它将被调用.

关于使用 anguler ActivatedRouter 快照参数获取 jsonangular获取url的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于ActivatedRoute始终指向NgRx效果中的根、Anaconda 使用 conda activate 激活环境报错 Your shell has not been properly configured to use ''conda activate''.、Angular - 从 CanActivate 中的 Observable 服务获取布尔值 更新:来自isActiveUser()的附加逻辑、Angular 2,从不为实现OnActivate的组件调用routerOnActivate方法等相关内容,可以在本站寻找。

本文标签: