想了解AngularJS:路由的url参数的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于angularjs路由的相关问题,此外,我们还将为您介绍关于$httpBackend(angular
想了解AngularJS:路由的url参数的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于angularjs 路由的相关问题,此外,我们还将为您介绍关于$httpBackend(angularJS)中的URL参数、Angular 12 - 导航到新路由,保留旧路由的 url、Angular 2路由器中的非Url参数、angular6 路由拼接查询参数如 ?id=1 并获取url参数的新知识。
本文目录一览:- AngularJS:路由的url参数(angularjs 路由)
- $httpBackend(angularJS)中的URL参数
- Angular 12 - 导航到新路由,保留旧路由的 url
- Angular 2路由器中的非Url参数
- angular6 路由拼接查询参数如 ?id=1 并获取url参数
AngularJS:路由的url参数(angularjs 路由)
我有一个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.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(更容易开发前端应用程序而无需运行整个后端).
解决方法
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 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’属性看起来不错,但我找不到关于如何动态设置它的文档.
可以通过以下方式实现组件到组件的通信
>具有父子关系的组件可以通过@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参数
路由拼接参数:
<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参数等相关内容,可以在本站寻找。
本文标签: