首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular2+需要可选参数的routerLinkActive类型解决方案

Angular2+中的routerLinkActive是一个指令,用于在当前活动路由和指定链接之间添加活动CSS类。它可以帮助我们在用户导航时为当前活动的链接添加样式。

在Angular2+中,routerLinkActive指令有一个可选参数,可以用来指定活动CSS类的名称。如果我们需要为routerLinkActive指定可选参数类型的解决方案,可以通过以下步骤实现:

  1. 创建一个自定义指令,用于扩展routerLinkActive指令并添加可选参数。可以使用Angular的@Directive装饰器来定义这个指令。
代码语言:typescript
复制
import { Directive, Input, OnChanges, SimpleChanges, HostBinding } from '@angular/core';
import { RouterLinkActive } from '@angular/router';

@Directive({
  selector: '[optionalRouterLinkActive]',
})
export class OptionalRouterLinkActiveDirective extends RouterLinkActive implements OnChanges {
  @Input() optionalRouterLinkActive: string;

  @HostBinding('class')
  get isActive(): string {
    return this.router.isActive(this.links, this.optionalRouterLinkActive) ? this.optionalRouterLinkActive : '';
  }

  ngOnChanges(changes: SimpleChanges): void {
    if ('optionalRouterLinkActive' in changes) {
      this.links = this.routerLink;
      this.classes = this.optionalRouterLinkActive;
    }
    super.ngOnChanges(changes);
  }
}
  1. 在模板中使用自定义指令,并传入可选参数。
代码语言:html
复制
<a routerLink="/home" optionalRouterLinkActive="active">Home</a>
<a routerLink="/about" optionalRouterLinkActive="active">About</a>

在上面的例子中,我们创建了一个名为OptionalRouterLinkActiveDirective的自定义指令,它继承自Angular的RouterLinkActive指令。我们添加了一个名为optionalRouterLinkActive的可选参数,并在isActive属性中使用它来判断是否应该添加活动CSS类。

这样,当用户导航到"/home"或"/about"时,对应的链接将具有名为"active"的CSS类。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云云数据库MySQL、腾讯云CDN加速等。你可以在腾讯云官网上找到这些产品的详细介绍和文档。

腾讯云官网链接:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【C++】函数 指针类型参数 与 引用类型参数 对比 ( 修改外部变量需要传入参数要求 | 参数作返回值 )

讨论问题 : 本章只针对一点进行讨论 , 那就是对两种类型参数修改 , 是否影响到外部变量 ; 传入什么样参数才能修改外部变量 , 即 参数当返回值使用 ; 2 ....参数使用语言环境 : 引用类型参数只能在 C++ 环境中使用 , 指针类型参数可以用于 C / C++ 两种语言环境中 , 因此很多基础库 如 FFMPEG , OpenSL ES 等使用都是指针类型参数...指针作为参数和返回值 ---- 指针作为参数和返回值 : 如果是指针作为参数 , 修改 N 维指针指向地址 , 那么需要传入 N + 1 维指针 , 传入指向该 N 维指针 指针参数 ( N + 1...C++ 中引用参数 : C++ 在 C 语言基础上扩展了 引用 数据类型 , 使用引用可以替代上面的指针作为参数情况 , 使参数具有返回结果能力 ; 3 ....引用作为参数和返回值 ---- 引用作为参数和返回值 : 如果是引用作为参数 , 修改 N 维指针指向地址 , 那么需要传入 N 维指针引用即可 ,在函数中修改该引用 , 即可修改外部被引用变量

2.2K20

Angular 从入坑到挖坑 - Router 路由使用入门指北

、query 查询参数传递 最常见一种参数传递方式,在需要跳转路由地址后面加上参数和对应值,在跳转后页面通过获取参数 key 从而获取到对应参数值 <a href="www.yoursite.com...;对于可能存在<em>的</em>查询<em>参数</em>,我们<em>需要</em>定义一个 NavigationExtras <em>类型</em><em>的</em>变量来进行设置 import { Component, OnInit } from '@angular/core';...,在跳转后<em>的</em>页面我们肯定<em>需要</em>获取到传递<em>的</em><em>参数</em>值。...4.2.2、动态路由传递 与使用查询<em>参数</em>不同,使用动态路由进行<em>参数</em>传值时,<em>需要</em>我们在定义路由时就提供<em>参数</em><em>的</em>占位符信息,例如在下面定义路由<em>的</em>代码里,对于组件所需<em>的</em><em>参数</em> newsId,我们<em>需要</em>在定义路由时就指明...,<em>需要</em>依赖注入 ActivatedRoute 类,因为是采用<em>的</em>动态路由<em>的</em>方式进行<em>的</em><em>参数</em>传递,这里<em>需要</em>通过 paramMap 属性获取到对应<em>的</em><em>参数</em>值 import { Component, OnInit

4.2K50
  • Angular路由

    可以接受一个数组,来动态改变url值,以便我们传递特定Url信息 2.2 routerLinkActive 实际开发中我们可能需要以下场景就是,我们要知道当前页面激活是哪一个路由。...图一 我们需要以下操作 路由与导航 2.3 Router API 实际项目中我们可能希望自己通过...js来后台控制跳转 // 我们需要把Router这个对象注入组件中,通过这个对象进行跳转 explort class Acomponent{     constructor(         private...图二 后台通过逻辑来进行跳转 注意:如果在Acomponent组件中使用navicate,如果利用jumpTomanger改变参数跳转当前页面,浏览器中url和参数都不会改变,但是这个路由对象确实变化了...,我们可以通过ActivatedRoute这个对象监听到变化 原因:navicate 是基于参数来改变组件视图 2.3.2 navigateByUrl() navicateByUrl()和navicate

    1.3K50

    Angular、React、Vue.js 等 6 大主流 Web 框架都有什么优缺点?

    需要注意是 Angular1(angular.js)与 Angular2+ 是截然不同,其中应用、技术和经验不能直接移植到 Angular2+ 开发中去。...如果你 Web 应用能够很好转化为标准模型-视图模式,那么你也可以忽略其他直接考虑使用 Angular2+ 。...要构建一个功能丰富 Web 应用程序,你需要许多功能,一旦脱离 React 和 Redux 和其他一些库核心,你将发现一个非常分散社区,拥有无数解决方案和模式,不容易整合在一起。...在模型-视图应用程序和状态容器类型应用程序之间互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式完美转换,但让人感觉希望能维持两个模式相关性。...对于那些期待 vue.js 完美解决方案,并可能导致难以维护不一致应用程序的人来说,这至少是令人困惑

    2.3K50

    基础| 六大主流框架怎么选?这里告诉你!

    需要注意是 Angular1(angular.js)与 Angular2+ 是截然不同,其中应用、技术和经验不能直接移植到 Angular2+ 开发中去。...如果你 web 应用能够很好转化为标准模型-视图模式,那么你也可以忽略其他直接考虑使用 Angular2+ 。...要构建一个功能丰富 Web 应用程序,你需要许多功能,一旦脱离 React 和 Redux 和其他一些库核心,你将发现一个非常分散社区,拥有无数解决方案和模式,不容易整合在一起。...在模型-视图应用程序和状态容器类型应用程序之间互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式完美转换,但让人感觉希望能维持两个模式相关性。...对于那些期待 vue.js 完美解决方案,并可能导致难以维护不一致应用程序的人来说,这至少是令人困惑

    1.1K10

    6 大主流 Web 框架优缺点对比

    需要注意是 Angular1(angular.js)与 Angular2+ 是截然不同,其中应用、技术和经验不能直接移植到 Angular2+ 开发中去。...如果你 web 应用能够很好转化为标准模型-视图模式,那么你也可以忽略其他直接考虑使用 Angular2+ 。...要构建一个功能丰富 Web 应用程序,你需要许多功能,一旦脱离 React 和 Redux 和其他一些库核心,你将发现一个非常分散社区,拥有无数解决方案和模式,不容易整合在一起。...在模型-视图应用程序和状态容器类型应用程序之间互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式完美转换,但让人感觉希望能维持两个模式相关性。...对于那些期待 vue.js 完美解决方案,并可能导致难以维护不一致应用程序的人来说,这至少是令人困惑

    1.5K00

    Angular、React、Vue.js等6 大主流 Web 框架都有什么优缺点?

    需要注意是 Angular1(angular.js)与 Angular2+ 是截然不同,其中应用、技术和经验不能直接移植到 Angular2+ 开发中去。...如果你 Web 应用能够很好转化为标准模型-视图模式,那么你也可以忽略其他直接考虑使用 Angular2+ 。...要构建一个功能丰富 Web 应用程序,你需要许多功能,一旦脱离 React 和 Redux 和其他一些库核心,你将发现一个非常分散社区,拥有无数解决方案和模式,不容易整合在一起。...在模型-视图应用程序和状态容器类型应用程序之间互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式完美转换,但让人感觉希望能维持两个模式相关性。...对于那些期待 vue.js 完美解决方案,并可能导致难以维护不一致应用程序的人来说,这至少是令人困惑

    2.9K00

    Angular、React、Vue等 6 大主流 Web 框架都有什么优缺点?

    需要注意是 Angular1(angular.js)与 Angular2+ 是截然不同,其中应用、技术和经验不能直接移植到 Angular2+ 开发中去。...如果你 web 应用能够很好转化为标准模型-视图模式,那么你也可以忽略其他直接考虑使用 Angular2+ 。...要构建一个功能丰富 Web 应用程序,你需要许多功能,一旦脱离 React 和 Redux 和其他一些库核心,你将发现一个非常分散社区,拥有无数解决方案和模式,不容易整合在一起。...在模型-视图应用程序和状态容器类型应用程序之间互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式完美转换,但让人感觉希望能维持两个模式相关性。...对于那些期待 vue.js 完美解决方案,并可能导致难以维护不一致应用程序的人来说,这至少是令人困惑

    2.3K60

    6 大主流 Web 框架优缺点对比

    需要注意是 Angular1(angular.js)与 Angular2+ 是截然不同,其中应用、技术和经验不能直接移植到 Angular2+ 开发中去。...如果你 web 应用能够很好转化为标准模型-视图模式,那么你也可以忽略其他直接考虑使用 Angular2+ 。...要构建一个功能丰富 Web 应用程序,你需要许多功能,一旦脱离 React 和 Redux 和其他一些库核心,你将发现一个非常分散社区,拥有无数解决方案和模式,不容易整合在一起。...在模型-视图应用程序和状态容器类型应用程序之间互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式完美转换,但让人感觉希望能维持两个模式相关性。...对于那些期待 vue.js 完美解决方案,并可能导致难以维护不一致应用程序的人来说,这至少是令人困惑

    2.1K20

    浅谈Hooks&&生命周期(2019-03-12)

    在[ngAfterContentInit()](https://angular.io/api/router/RouterLinkActive#ngAfterContentInit)随后和随后每一次调用之后...this.fetchList(); } fetchList() {} render() { return demo page; } } 我们都知道,在react中,有两种类型组件...React 不知道你把 useState 等 Hooks API 返回结果赋值给什么变量,但是它也不需要知道,它只需要按照 useState 调用顺序记录就好了。...useEffect 还支持第二个可选参数,只有同一 useEffect 两次调用第二个参数不同时,第一个函数参数才会被调用....首先我们可能不再需要 class了,虽然 React 官方表示 class 类型组件将继续支持,但是,业界已经普遍表示会迁移到 Hooks 写法上,也就是放弃 class,只用函数形式来编写组件。

    3.2K40

    Angular 从入坑到挖坑 - 路由守卫连连看

    ,这里包含了对于路由重定向、通配路由,以及通过动态路由进行参数传递使用 import { NgModule } from '@angular/core'; import { Routes, RouterModule...,对于 CanDeactivate 守卫来说,我们需要参数 unknown 替换成我们实际需要进行路由守卫组件 import { Injectable } from '@angular/core...HeroListComponent 这个组件,因此我们需要将泛型参数 unknown 改为 HeroListComponent,通过 component 参数,就可以获得需要进行路由守卫组件相关信息...Angular CLI 创建一个危机中心模块(crisis 模块) -- 查看创建模块相关参数 ng g module --help -- 创建危机中心模块(自动在 app.moudule.ts...这里问题与配置通配路由需要放到最后原因相似,因为脚手架在帮我们将创建模块导入到 app.module.ts 中时,是添加到整个数组最后,同时因为我们已经将 crisis 模块路由配置移动到专门

    3.8K30

    JS 数组中 reduce 方法详解

    累加器参数 累加器参数说明 total 必需。初始值, 或者计算结束后返回值。 currentValue 必需。当前元素 currentIndex 可选。当前元素索引 arr 可选。...当前元素所属数组对象。 累加器参数 累加器参数说明 total 必需。初始值, 或者计算结束后返回值。 currentValue 必需。当前元素 currentIndex 可选。...,完成最简单总和实现 ② 返回对象 reduce 函数返回结果类型和传入初始值相同,上个实例中初始值为 number 类型,同理,初始值也可为 object 类型 var items = [10...: 0},则需要相应逻辑进行处理 在下面的方法中,采用分而治之方法,即将 reduce 函数第一个参数 callback 封装为一个数组,由数组中每一个函数单独进行叠加并完成 reduce 操作。...,它需要 reducers 对象作为参数,并返回一个 callback 类型函数,作为 reduce 第一个参数

    6.6K40

    一些实用编程模式 | Options模式

    但是如果可选参数是十几个,各个调用方对可选参数顺序要求不一样的话,定义这个多重载方法显然不是一个好解决方案。...另外一种常用解决方案是,工具函数签名定义时,不再定义各个可能需要配置可选参数,转而定义一个配置对象。...配置对象方案问题 函数签名里通过传递一个配置对象来聚合各种可能可选参数这个方案,对调用者来说,比上一种方法看起来简洁了不少,如果全都是默认选项只需要给配置对象这个参数传递一个零值即可。...虽然参数是可变,但是实现方需要通过遍历设置HTTP客户端不同选项,这就让可变参数固定了传递顺序,调用方如果想要设置某个可选项还得记住参数顺序,切无法直接通过函数签名就确定参数顺序,貌似还不如咱们最原始解决方案...如果后面要给配置对象里增加其他配置项,只需要扩充类型字段,在定义一个对应With方法即可,扩展性完全在可接受范围内。

    57210

    【超详细】Zod 入门教程

    (num: unknow) => { return String(num)}我们将 num 入参设置为 unknow这意味着我们可以在编码过程中给 toString 函数传递任何类型参数,包括...eye_color,skin_color 等等一些我们不感兴趣内容接下来我们需要修复这个 PersonResult unknown 类型解决方案使用 z.object 来修改 PersonResult...,如果需要的话05 - 让 schema 变成可选===================问题--Zod 在前端项目中也同样是有用在这个例子中,我们有一个函数叫做 validateFormInput这里...name,email 字段还有可选 phoneNumber 和 website 字段然而,我们现在想对一些值做强约束需要限制用户不能输入不合法 URL 以及电话号码作业你任务是寻找 Zod ...API 来为表单类型做校验电话号码需要是合适字符,邮箱地址和 URL 也需要正确格式解决方案Zod 文档字符串章节包含了一些校验例子,这些可以帮助我们顺利通过测试现在我们 Form 表单 schema

    81910

    iPhone 15 系列跌破 5000 元大关 | Swift 周报 issue 46

    目前,当在字符串中插入可选值时,开发人员面临警告和提供默认值选项有限问题。 所提出解决方案建议引入新字符串插值重载,该重载允许开发人员指定默认字符串,而不管可选类型如何。...介绍Pitch 建议在插入可选值时使用新默认值字符串插入语法。动机字符串插值很强大,但在处理可选值时会变得复杂。当前解决方案在处理可选值时涉及繁琐代码或不需要输出。...例子演示插入可选字符串和可选整数时挑战。当前解决方案涉及笨拙代码或零合并运算符限制。建议解决方案引入新插值重载,允许将预期默认值指定为字符串,而不管值类型如何。...回答从技术上讲,传入不是一个框,它“只是”一个指针,类型作为单独参数传递。 这对于值已经在堆栈或堆上情况很有帮助。...核心概念与联系部分深入解释了集成前需要了解核心概念,包括 Elasticsearch 索引、查询、分词、词典等原理,以及 Swift 类型安全、自动引用计数、高性能等特点。

    14332

    从java到JavaScript(2):对比JavaGoSwiftRust看Dart

    booleans类型是bool,只包含true和false。这两个对象也是编译时常量。当Dart需要一个布尔值时候,只有true对象才被认为true,其他都是false。...方法Dart是一个真正面向对象语言,方法也是对象并且具有一种类型Function。可以使用上文说可选方法。支持直接设置默认参数值。...具体参考APImap对应java里面的Map,他操作方式有点像Python。需要注意有几点。...函数Dart函数比java多了几个概念。比如在参数列表里面添加个大括号,是可选命名参数;加个中括号叫可选位置参数。...可选命名参数类似Python里面的**kwargs可选位置参数类似Python里面的*args可选命名参数可选位置参数可以有默认值,普通参数不能有函数之间可以互相嵌套,互相调用,但他们都有自己作用域。

    93810

    Go常见错误集锦之函数式选项模式

    所谓函数式,是从函数式编程中借鉴过来概念,即函数和其他基础类型一样,可以将函数作为参数、返回值以及赋值给其他变量。 选项就是配置参数值。...实现一:传一个配置结构体实现(Config struct) 第一种方法是使用一个结构体(config struct)来处理不同配置选项。我们可以把参数分成两类:基础配置和可选配置。...Config) { } 这种解决方案修复了兼容性问题。...由于该Port方法接受是一个整型参数,所有没有必要传递一个整型指针。然而,如果调用者只需要默认配置情况下,依然需要传递一个空config结构体。 注意:该方法有不同变体。...每一个配置字段都需要创建一个包含简单逻辑公开方法(为了方便一般以With前缀开头):如需要,则要验证输入参数合法性以及说明如何更新config结构体。

    37710

    C#学习笔记七: C#4.0中微小改动-可选参数,泛型可变性

    主要内容有: 可选参数和命名实参, 泛型可变性, 动态类型 1,可选参数和命名实参 1.1可选参数 可选参数和命名实参就如同一对好基友, 因为它们经常一起使用....这里解决方案就是仍然使用同一个Check方法,但是给这个Check方法新添加一个可选参数来判断到底是执行哪个操作, 然后根据不同操作去做相应修改....在使用可选参数时, 需要注意一下几个约束条件: (1)所有可选参数必须位于必选参数之后. (2)可选参数默认值必须为常亮. (3)参数数组(有params修饰符声明)不能做为可选参数 (4)用ref或...out关键字标识参数不能被设置为可选参数 看到这里我们就可以发现可选参数最大优点就是便于系统后期维护....其他优点还有待发现. 1.2命名实参 如果一个系统中有两个可选参数, 而我们想省略掉第一个可选参数怎么办呢?

    1.4K80
    领券