Passing variables from a template to TypeScript using ngFor

Need help passing a variable from a template to typescript using *ngFor loop.

Currently, my code looks like this:

 <select (change)="onregionchange()" data-placeholder="Regions" class="form-control regions-select" id="regions" multiple>
    <option *ngFor="let region of all_regions" [value]="region.id">{{region.name}}</option>
</select>

I want to send countries for the selected region to the ts file and store them in region.countries within the onregionchange() function.

Any suggestions on how to achieve this in angular2?

Answer №1

Ensure that when you call the onregionchange() function, all the options are passed in like this: change($event.target.options).

In your TypeScript file, make sure to extract only the selected options as you are receiving all variables. Here is an example:

onregionchange(countries) {
    this.selectedregions = Array.apply(null,countries)
      .filter(country => country.selected)
      .map(country=> country.value)
  }

You can also refer to this example for more information.

Answer №2

If you have an onchange handler on your select element, you can utilize it like this:

<select (change)="onregionchange()" data-placeholder="Regions" class="form-control regions-select" id="regions" multiple>
    <option *ngFor="let region of all_regions" [value]="region.id">{{region.name}}</option>
</select>

function onregionchange(e){
    console.log(e.target.value)
}

By setting the value of each option to region.id, you will be able to retrieve the selected region's ID in the event listener function. From there, you should be able to access other properties such as region.country.

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

Sending a POST request that is attempting to insert empty values into an MS SQL database

Here is the code I am working with - onSubmit(){ var headers = new Headers(); headers.append('Content-Type', 'application/x-www-form-urlencoded'); let postParams = { firstName : this.firstName, lastName : this.lastNa ...

Obtain the last used row in column A of an Excel sheet using Javascript Excel API by mimicking the VBA function `Range("A104857

Currently in the process of converting a few VBA macros to Office Script and stumbled upon an interesting trick: lastRow_in_t = Worksheets("in_t").Range("A1048576").End(xlUp).Row How would one begin translating this line of code into Typescript/Office Scr ...

Resetting the modal scroll time when the content of the modal is refreshed

I have implemented the modal in my application using ng-bootstrap. Within the modal, there are multiple pages that can be navigated using the Next and Back buttons. An issue I am facing is that when a page is long and requires scrolling, it loads in the ...

Setting a default value for a select-option in Angular can be done by initializing the

How can I set a default value of 'John' for a select option in the ngOnInit function when the page loads? I'm not entirely sure if I'm using the select option correctly. Please let me know if there's an error in my approach. I att ...

What is the process for uploading an array of files with AngularFire2 and Firebase Storage?

I encountered a dilemma trying to find answers to my question. Most resources, like the AngularFire2 documentation and an informative tutorial from angularfirebase.com, only demonstrate uploading one file at a time. As I aim to construct a photo gallery CM ...

Unable to connect dynamic information in Angular 8 component

Error encountered during dynamic component loading DynamicBuilderComponent.ngfactory.js:198 ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: The expression has changed after it was checked. Previous value: 'ng-pristine: true'. Current ...

Issues with Loading childComponent in Angular 5 Parent Component

How can I successfully load an internal component, specifically the store-top component at app/stores/store/store-top.component? I want to display the store-top content in the store component when a user clicks on any of the stores from a list. Any sugges ...

Avoiding the restriction of narrowing generic types when employing literals with currying in TypeScript

Trying to design types for Sanctuary (js library focused on functional programming) has posed a challenge. The goal is to define an Ord type that represents any value with a natural order. In essence, an Ord can be: A built-in primitive type: number, str ...

Give the Row ID as a parameter to a personalized component within MUI Datagrid Pro

I am currently exploring the idea of incorporating an intermediate state to row checkboxes based on the selection status of other checkboxes within a detailed panel. My approach involves crafting a custom checkbox component and implementing some logical ...

When passing the parameter in Angular, the value appears as "Ébénisterie," but in Java, it is retrieved as "Ã?bénisterie"

In Angular, there is a parameter with the value Ébénisterie. However, when I try to print the same variable in Java, it displays as Ã?bénisterie. Can someone help me convert it back to the original text Ébénisterie? Which encoding/decoding process ...

Unraveling the mystery of decoding a jwt token

Every time I attempt to validate a user token, I keep encountering Error 500. function verifyToken(req, res, next) { if(!req.headers.authorization){ return res.status(401).send('Unauthorized request') } let token = req.headers.authorization. ...

After executing the ng serve command, I encountered the following error message: "There has been an unhandled exception - Module '../dotjs/validate' could not be found."

**Oops! There was an unhandled exception: Module '../dotjs/validate' not found. **Here's a peek at my package.json file "dependencies": { "@angular/animations": "^8.1.1", ... "zone.js": "~0.9.1" }, " ...

Issues with CORS functionality in Angular and NodeJS application causing disruptions

I am encountering issues with my Angular application that is Dockerized. When loading the application on Edge or Firefox, all the REST API requests needed to populate the homepage are not reaching the application. However, when I load the same page on Chro ...

Leveraging Angular's capability to import files directly from the assets

I recently installed a library via npm and made some modifications to one of the modules. python.js If I delete the node_modules folder and run npm install, I am concerned that I will lose my changes. Is there a way to preserve these modifications by mov ...

I desire for it to effortlessly unlock within my matmenu as soon as the webpage loads

Upon opening my page, I want the material menu to automatically open. However, since there is no click action, I am encountering an error stating that "trigger" is undefined. An error occurred: TypeError: Cannot read properties of undefined (reading &apo ...

Troubleshooting Angular 2: (keyup) event not functioning on Tour of Heroes Tutorial

I am currently working on a tutorial for the tour of heroes, and I have encountered an issue with the (keyup) event in my project. What seems to be happening is that when I input the first letter, Angular sends a request, but subsequent key presses do not ...

Encountered in the Angular library: NG0203 error stating that inject() should only be invoked within an injection context like a constructor, factory function, or field initializer

Having recently updated my Angular project from version 9 to 15, I encountered the following issue. Any assistance would be greatly appreciated as I have been struggling with it for over 2 weeks. The problem lies within app-lib.module.ts in the Angular li ...

Dynamic Field Validation in Angular 6: Ensuring Data Integrity for Dynamic Input Fields

After successfully implementing validation for one field in my reactive form, I encountered an issue with validating dynamically added input fields. My goal is to make both input fields required for every row. The challenge seems to be accessing the forma ...

Establish the default landing page as the home screen when launching the application

Hey, I'm running into a situation where I need to change the default page of my application upon loading. Is there a way to redirect from the home page to another page when the application loads? Thanks! ...

The function type '() => JSX.Element' cannot be assigned to the type 'ReactNode'

I am encountering an issue while trying to display a component using an object. The code is throwing an error: const Login = () => <>login</> const publicRoutes = [ { path: '/login', component: Login } ] function AppR ...