无法理解此Angular方法

时间:2018-07-26 03:25:00

标签: angular

我在Angular中看到了一段代码,但我听不懂。

remove_stock({group, index}: {group: FormGroup, index: number}) {
    const control = this.form.get('stock') as FormArray;
    control.removeAt(index);
}

我知道有一种方法称为remove_stock,由于它使用括号,因此需要一个参数。

但是我不确定这个论点。 我在打字稿中知道,用大括号括起来的任何东西都是对象,而在冒号之前的任何东西都是该类型的名称。

但是我不明白的是这个

{group, index}: {group: FormGroup, index: number}

有人可以解释吗

我从Ultimate Angular的屏幕截图中获取了此信息,但我感到很困惑。 这是该图片的链接

https://i.vimeocdn.com/video/680140010.webp?mw=1500&mh=844&q=70

谢谢

2 个答案:

答案 0 :(得分:2)

首先,此语法与打字稿无关,它是es6语法。
称为解构分配,请看此链接Destructuring assignment
看一下这段代码:

const user = {
  id: '1',
  name: 'user' 
};

const {id, name} = user;

这些代码行与此相同

const user = {
  id: '1',
  name: 'user' 
};

const id = user.id;
const name = user.name;

上面的函数就是这样

remove_stock(input: {group: FormGroup, index: number}) {
  const index = input.index;
  const group = input.group;
  const control = this.form.get('stock') as FormArray;
  control.removeAt(index);
}

答案 1 :(得分:1)

这是一个从数组中删除元素的函数 根据我在此链接https://www.cnblogs.com/Answer1215/p/6592580.html中找到的示例 表单组是通过数组创建的

removeStock ({group, index}: {group: FormGroup, index: number}) {
     const control = this.form.get ('stock') as FormArray;
     control.removeAt (index);
   }

传递了两个参数,分别是类和标识符

{group, index}

此处表示参数的数据类型

{group: FormGroup, index: number}

声明一个常量,其中包含所有元素 const control = this.form.get('stock')as FormArray;

它删除由索引标识的元素

control.removeAt (index);

XD这就是我所说的西班牙语,所以请原谅我在Google XD上所做的写作