GVKun编程网logo

AngularJS:路由的url参数(angularjs 路由)

3

想了解AngularJS:路由的url参数的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于angularjs路由的相关问题,此外,我们还将为您介绍关于$httpBackend(angular

想了解AngularJS:路由的url参数的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于angularjs 路由的相关问题,此外,我们还将为您介绍关于$httpBackend(angularJS)中的URL参数、Angular 12 - 导航到新路由,保留旧路由的 url、Angular 2路由器中的非Url参数、angular6 路由拼接查询参数如 ?id=1 并获取url参数的新知识。

本文目录一览:

AngularJS:路由的url参数(angularjs 路由)

AngularJS:路由的url参数(angularjs 路由)

我想在 angularjs中使用url参数进行路由

我有一个2个视图的anguar应用程序:
editView和mainView

给出一个看起来像这样的网址:
‘httx:// MYAPP /参数1 = X&安培; …&安培;编辑模式= 1&安培; …’

– >将带我到/ editMode路径

这样做有什么好办法?

>如果editmode == 1,我是否需要使用控制器来获取$routeparams.editmode并使用$location.path(‘/ editmode’)?
>我需要html5模式吗?
>关于url我无能为力 – 我被迫使用editmode参数

$routeProvider.when('/',{
  controller: function($routeParams,$location) {
    if($routeParams.editmode == '1') {
      $location.path('editMode') ...

解决方法

我发现“解决:”而不是“控制器:”是我所需要的.
如果有人有兴趣通过params改变路线,这是要走的路:
https://github.com/angular/angular.js/issues/1838#issuecomment-13994168

$httpBackend(angularJS)中的URL参数

$httpBackend(angularJS)中的URL参数

是否可以在angularJS的$httpBackend中接收URL参数?我想做的事情如下:

$httpBackend.whenGET('/api/v1/users/{userId}').respond(function (method,url,data) {
    // somehow read {userId} and act differently depending on what the value is

    return [200];
});

拥有这个功能真的可以很容易地创建一个功能相当的模拟API(更容易开发前端应用程序而无需运行整个后端).

解决方法

您可以传递正则表达式而不是字符串作为URL.在回调函数中,从URL中提取userId,并回答您想要的内容.

Angular 12 - 导航到新路由,保留旧路由的 url

Angular 12 - 导航到新路由,保留旧路由的 url

如何解决Angular 12 - 导航到新路由,保留旧路由的 url?

我有一个要求,如果我在 localhost:4200/home 上并且遇到特定错误,我会导航到 ErrorComponent 路由而不更改 url,即保持 localhost:4200/home 作为 url。

我尝试使用 NavigationExtras 并将 skipLocationChange 指定为 true 但这会清除当前路由并且不会在 URL 中显示新路由但成功导航到错误页面。

有什么想法吗?

解决方法

您可以尝试使用 *ngIf 指令加载组件,如下面的伪代码所示,

//routing.module
const routes: Routes = [
  {path: "/home",component: HomeComponent}
];

//HomeComponent.html

<div *ngIf={{!error}}>

//code of home component goes here
</div>

<div *ngIf={{error}}>
   <app-error></app-error>
</div>


//ErrorComponent.ts
selector: app-error

Angular 2路由器中的非Url参数

Angular 2路由器中的非Url参数

在角度1. *中,我使用ui-router并且能够将NON URL参数从一个状态传递到另一个状态.通过NON URL参数,我的意思是传递一些不出现在URL上的参数(这对用户来说是完全透明的).

在Angular 1. *中执行此操作的方法是通过定义这样的状态(statetoRedirect是非url参数)

$stateProvider
    .state('LOGIN_STATE',{
      url: `login`,component: 'login',params: {
        statetoRedirect: 'home'
      }
    });

并改变这样的状态:

$state.go('LOGIN_STATE',{
    statetoRedirect: 'OTHER_STATE',});

在LOGIN_STATE中,我能够访问此参数:

$stateParams.statetoRedirect;

我正在尝试为Angular 2路由器找到相同的行为,我的理解是Angular 2路由器已经改进了很多,我们可能不需要使用ui-router-ng2.

所以我的问题是:你如何在Angular 2路由器中重现上述行为?

This question似乎是我想要的,但我不想在URL中使用参数,并且路径上的’data’属性看起来不错,但我找不到关于如何动态设置它的文档.

你问的问题更多是关于 component to component communication而不是路由本身.您需要的是将数据从一个组件(与特定路由相关联)传递到另一个组件(与另一个路由相关联).

可以通过以下方式实现组件到组件的通信

>具有父子关系的组件可以通过@input()和@Output()装饰器和事件发射器传递数据
> Via the use of a service.不共享驻留在同一模块中的父子关系的组件可以通过服务共享数据,或者通过使用Observable序列(具有生产者 – 消费者模型),或者通过在变量中设置数据并相应地读取.通过向根(或两者为父)模块注册服务,可以将此方法扩展到驻留在不同模块中的组件.
>通过路由器.数据可以通过路由器作为路径参数传递,例如:my / path / thisisapathvalue,optional parameters(使用矩阵表示法),例如my / path; item = hello; item2 = world或通过查询字符串参数,例如my / path?item = hello& ; ITEM2 =世界.您还可以使用resolve guards解析特定组件的数据,该解析可以解析静态数据,从服务器检索的数据,通过函数解析等.

对于您的场景,您最需要的是一个服务,它将源组件与目标组件之间的数据进行通信,因为即使使用解析保护来解析数据,您也需要一个额外的服务来临时存储数据.你需要通过.

angular6 路由拼接查询参数如 ?id=1 并获取url参数

angular6 路由拼接查询参数如 ?id=1 并获取url参数

angular6 路由拼接查询参数如 ?id=1 并获取url参数

路由拼接参数:

<div class="category-border" [routerLink]="[''/list/'' + category.id + ''/'' + category.slug]" [queryParams]="{id: 1}">

拼接后在浏览器显示: 域名  http://localhost:4200/?id=1

angular 获取参数 id 的值: 
  引用API: import { ActivatedRoute, Params } from ‘@angular/router’;

this.activeRoute.queryParams.subscribe((params: Params) => {
      this.source = params[''id''];
    });

 

 

 

关于AngularJS:路由的url参数angularjs 路由的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于$httpBackend(angularJS)中的URL参数、Angular 12 - 导航到新路由,保留旧路由的 url、Angular 2路由器中的非Url参数、angular6 路由拼接查询参数如 ?id=1 并获取url参数等相关内容,可以在本站寻找。

本文标签: