TS template syntax is causing routerLink to fail compilation

I have a component similar to the one in this example link:

@Component({
  template: `
      <p [innerHTML]="link"></p>
  `,
  directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
  { path: '/two', component: Two, name: 'Two'},
])
export class App {
  two = (text: string) => `<a [routerLink]="['/Two']">${text}</a>`;
  constructor(private _router: Router) {  }
  ngOnInit() {
    this.link = `${this.two("two")}`;
  }
}

Can anyone help me figure out why it's not compiling the link value or suggest a way to fix it? My intention is to set the URL statically and only modify the text of the generated link.

UPDATE:

I also attempted:

two = (text: string) => `<a href="/two">${text}</a>`;

It works in plunker with #/two due to HashLocationStrategy, but in my application router fails to detect the link causing the entire page to reload...

Answer №1

routerLink is a directive that does not work with HTML added using innerHTML.

If you change link to an Array instead of a string, it should function properly.

Here's how:

<p [routerLink]="link"></p>
this.link = ['Two'];

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Using a function as a parameter in Typescript: Anticipated no arguments, received 1.ts

I'm encountering an issue when trying to pass the doSomething function into performAction. The error message I'm receiving is Expected 0 arguments, but got 1 interface SomeInterface { name: string, id: string } function doSomethingFunction( ...

Exclude certain files when conducting SonarQube Code Coverage Analysis for Angular 7

How can I improve code coverage in SonarQube Analysis by excluding ts.files? I attempted the following code: "test": { "builder": "@angular-devkit/build-angular:karma", "options": { "main": "src/test.ts", "poly ...

sticky header on pinned tables in a React data grid

I have combined 3 tables together, with the middle table containing a minimum of 15 columns. This setup allows users to horizontally scroll through the additional columns conveniently. However, I am facing a challenge in implementing a sticky header featu ...

What is the best way to trigger a Redux Toolkit action within a React Router DOM action?

My router setup looks like this: const router = createBrowserRouter([ { path: "/", element: <MainLayout />, errorElement: <Error />, children: [ { path: "/inventory", element: <Inve ...

How can Angular 2 populate forms with data retrieved from a promise in a database?

I'm currently navigating through the world of Angular and Firebase, and I’ve hit a roadblock when it comes to populating my forms with data from Firebase promises. Understanding how to work with promises versus observables is also proving to be a ch ...

Django-oauth2 encountered a 500 error due to the presence of unauthorized URL query parameters in the request

Just starting out with django. Using: oAuth2 + PKCE protocol, Angular, Django-oauth2-toolkit + REST Continuously receiving this error: oauthlib.oauth2.rfc6749.errors.InvalidRequestError: (invalid_request) URL query parameters are not allowed <oauthli ...

Error compiling SCSS in Angular 6 due to a util.js issue

As a novice in the world of Angular 6, I am currently exploring the Angular CLI and trying to grasp the file structure. My goal is to utilize SCSS for creating a unified global stylesheet. However, during compilation, an error keeps popping up: ERROR in . ...

Angular type error: Attempting to assign a value of type 'string' to a variable declared as type 'string[]' is not allowed

As a newcomer to Angular, I am currently working on building an electron app with Angular 6. My objective is: 1. Implementing SupportInformationClass with specific definitions 2. Initializing the component to populate the definitions from electron-settin ...

What is the best approach to utilize the GET method in Angular 2 to call a SOAP API

I recently completed a project in Angular 2 and now I am looking to call a SOAP API using the GET method in Angular 2. While I have experience using SOAP in AngularJS 1 and found the packages quite easy to use, I have not been able to locate any packages ...

Can you explain the meaning of `(error: T) => void` in error?

I've come across this particular syntax in a few Typescript libraries and I am trying to grasp its meaning. error?: (error: T) => void I have seen it being used like so: class SomeClass { someFunction(error?: (error: T) => void){ } ...

Creating TypeScript utility scripts within an npm package: A Step-by-Step Guide

Details I'm currently working on a project using TypeScript and React. As part of my development process, I want to automate certain tasks like creating new components by generating folders and files automatically. To achieve this, I plan to create u ...

Validate that the input is an array

Looking for a way to determine if a function parameter is an array or not, and then process it accordingly. If the parameter is not an array, convert it into an array before performing the desired function. For example: interface employee { first: st ...

What is the proper way to invoke the correct store 'collection' using ngrx-store?

I'm currently working on a sample app to learn ngrx and I have two different sets of data - one for counters and the other for URLs. Each store is displayed correctly in their respective components, and I can also increment & decrement the counter usi ...

Testing a stateless React component with withRouter() using Enzyme and ways to pass the match parameter

I have a React functional component that I am testing and it is wrapped in withRouter from react-router-dom. The component's code structure is shown below. import * as React from 'react'; import { Switch, Route, withRouter, RouteComponentPr ...

Clearing the require cache in Node.js using TypeScript

I need to repeatedly require a module in TypeScript and Node for testing purposes. I came across an approach on this post which suggests the following code snippet: const config = require('./foo'); delete require.cache[require.resolve('./fo ...

Is it possible to determine the identity or type of a parent component from within a child component in an Angular application?

Consider this: there exists a relationship between two elements in the Angular framework: // The parent component is ParentComponent // The child component is ChildComponent // Within the ParentComponent template: <pp-child></pp-child> ----- ...

Error when accessing JSON property in Angular with Ionic 2: A Strange TypeError

I have implemented a provider in my Ionic project to fetch the user object from storage. Below is the code: import { Injectable } from '@angular/core'; import { Storage } from '@ionic/storage'; @Injectable() export class ApiProvider { ...

Verifying User Permissions with Angular 2/4 and API

I am currently in the process of developing an Angular 2/4 application that interacts with an API built in Laravel 5.4. One area I'm seeking guidance on involves checking authentication and permissions on the backend through Angular. I want to verify ...

"Implement ngx-translate to cater to multi-language support in your Angular library

How can I effectively incorporate ngx-translate for handling translations within an Angular library? I have been experimenting with various methods, but have yet to find a successful solution. ...

I am looking to update the color based on the prop value in React

Currently using react along with typescript. My objective is to adjust the color based on the value passed through props. The props will contain either "primary," "secondary," or "brand" as a string type. When the value "primary" is provided, I aim ...