How to use Spread Operator in angular component template

M_Farahmand

I want to pass an array to a function from component template.
This is my toolbar:
toolbar.component.html

<div *ngFor="let item of items">
   <button mat-mini-fab [style.color]="item.color" 
    (click)="item.command(...item.commandParams)">
     <i class="material-icons">{{item.icon}}</mat-icon>
   </button>
 </div>

toolbar.component.ts

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-toolbar',
  templateUrl: './toolbar.component.html',
  styleUrls: ['./toolbar.component.scss']
})
export class ToolbarComponent implements OnInit {
  items: ToolBarItem[]

  constructor() {
  }

  ngOnInit() {
  }
}

export class ToolBarItem {
  icon = 'border_clear';
  color: string;
  command: () => void;
  commandParams: any[];
}

Here I want to init items of toolbar with varies commands.
main.ts

...
items: [
        {
          icon: 'mode_edit',
          color: 'blue',
          command: (name, family) => {
            console.log('editClick!' + name + family);
          },
          commandParams: ['mohammad', 'farahmand'],
        },
        {
          icon: 'delete',
          color: 'red',
          command: () => {
            console.log('deleteClick!');
          },
        }
      ],
...

But i get this error:

Error: Template parse errors: Parser Error: Unexpected token . at column 14 in [item.command(...item.commandParams)] in ...

GreyBeardedGeek

It's unlikely that you're going to get this syntax to work in a template (there are many valid typescript constructs that don't work in templates).

You could write a helper method in the component instead, that takes the item as an argument, and then makes the appropriate call, as in, for example:

public doCommand(item: ToolbarItem): void {
  item.command(...item.commandParams);
}

and then change your template to:

(click)="doCommand(item)"

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Can you use spread operator in the template in angular

From Dev

How to use spread operator?

From Dev

How to use spread operator in React native typescript class component

From Dev

How to use spread operator in javascript?

From Dev

Why parent component doesn't update when save form with spread operator ,but when use "push" it works ..Angular

From Dev

How do i use spread operator over spread operator | Typescript

From Dev

spread operator in component react

From Dev

How to use spread operator on nested javascript objects?

From Dev

How to use the spread operator in a typescript tuple?

From Dev

How to concatenate and use spread operator in dart

From Dev

How to use spread operator in typescript as argument to a function?

From Javascript

How to use es6 template literal as Angular Component Input

From Dev

How to use spread operator to delete an object from array of objects using spread operator using react?

From Dev

difference between spread operator and without the spread in angular

From Dev

How to use spread operator in the array and assign the previous value?

From Dev

How do I use the spread operator to replace a value in an array

From Dev

How to use object destructuring spread operator to delete multiple object properties

From Dev

How to use the spread operator to flatten array of objects in javascript

From Dev

How to use Typescript object spread operator to add optional properties?

From Dev

How to use Django template as a component?

From Dev

Angular Spread Operator not working properly?

From Dev

Convert object to use spread operator?

From Dev

Use spread operator on NodeList in Typescript

From Dev

Unable to use spread operator in Flutter

From Dev

Use of spread operator in useEffect in ReactJS

From Dev

Use of the spread operator in function arguments

From Dev

how to use spread operator in conjunction with Math.min() on an array of objects to find the min of a value in spread objects

From Dev

Create component template to use it multiple times - Angular

From Dev

When to use a Template vs Component in Angular?

Related Related

  1. 1

    Can you use spread operator in the template in angular

  2. 2

    How to use spread operator?

  3. 3

    How to use spread operator in React native typescript class component

  4. 4

    How to use spread operator in javascript?

  5. 5

    Why parent component doesn't update when save form with spread operator ,but when use "push" it works ..Angular

  6. 6

    How do i use spread operator over spread operator | Typescript

  7. 7

    spread operator in component react

  8. 8

    How to use spread operator on nested javascript objects?

  9. 9

    How to use the spread operator in a typescript tuple?

  10. 10

    How to concatenate and use spread operator in dart

  11. 11

    How to use spread operator in typescript as argument to a function?

  12. 12

    How to use es6 template literal as Angular Component Input

  13. 13

    How to use spread operator to delete an object from array of objects using spread operator using react?

  14. 14

    difference between spread operator and without the spread in angular

  15. 15

    How to use spread operator in the array and assign the previous value?

  16. 16

    How do I use the spread operator to replace a value in an array

  17. 17

    How to use object destructuring spread operator to delete multiple object properties

  18. 18

    How to use the spread operator to flatten array of objects in javascript

  19. 19

    How to use Typescript object spread operator to add optional properties?

  20. 20

    How to use Django template as a component?

  21. 21

    Angular Spread Operator not working properly?

  22. 22

    Convert object to use spread operator?

  23. 23

    Use spread operator on NodeList in Typescript

  24. 24

    Unable to use spread operator in Flutter

  25. 25

    Use of spread operator in useEffect in ReactJS

  26. 26

    Use of the spread operator in function arguments

  27. 27

    how to use spread operator in conjunction with Math.min() on an array of objects to find the min of a value in spread objects

  28. 28

    Create component template to use it multiple times - Angular

  29. 29

    When to use a Template vs Component in Angular?

HotTag

Archive