Angular 在@Input上使用slice时,组件的Setter调用了两次。角度4
在angular 4上使用双向数据绑定时,将数组传递给其他组件,如下所示:Angular 在@Input上使用slice时,组件的Setter调用了两次。角度4,angular,input,pipe,setter,getter,Angular,Input,Pipe,Setter,Getter,在angular 4上使用双向数据绑定时,将数组传递给其他组件,如下所示: <app-testing [inputArray]="arraySend | slice:0:1"> </app-testing> 组件。ts import {Component} from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', s
<app-testing [inputArray]="arraySend | slice:0:1"> </app-testing>
组件。ts
import {Component} from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
arraySend = ['send1', 'send2', 'send3', 'send4'];
}
import {Component, Input} from '@angular/core';
@Component({
selector: 'app-testing',
templateUrl: './testing.component.html',
styles: []
})
export class TestingComponent {
private _array: any;
@Input()
get inputArray(): any {
return this._array;
}
set inputArray(value: any) {
console.log(value);
this._array = value;
}
}
HTML
<app-testing [inputArray]="arraySend"> </app-testing>
<div>
<ul *ngFor="let i of inputArray ">
<li>{{i}}</li>
</ul>
</div>
HTML
<app-testing [inputArray]="arraySend"> </app-testing>
<div>
<ul *ngFor="let i of inputArray ">
<li>{{i}}</li>
</ul>
</div>
- {{i}
工作正常,但如果我在标记应用程序测试中添加切片管道,如下所示:
<app-testing [inputArray]="arraySend | slice:0:1"> </app-testing>
testing.component.ts中的setter方法被调用了两次,我不想它被调用两次
我真的很感谢你的帮助,提前谢谢你,而不是像塞特那样尝试
export class TestingComponent {
@Input() private inputArray: any[] = [];
}
如果只需要setter,则可以创建函数
<app-testing [inputArray]="slice(arraySend)"> </app-testing>
slice(arraySend){
return arraySend.slice(0,1)}
切片(排列结束){
返回arraySend.slice(0,1)}
尝试使用函数[inputArray]=“切片(arraySend)”,而不是管道。