输入数组的变化检测

时间:2016-09-16 18:18:48

标签: angular angular2-changedetection

我正在将一个对象数组输入到一个从HTTP请求响应(异步)生成的组件中,我想用前三个数组元素填充一个不同的数组。

我想在从父输入分配第一个数组的同时填充新数组。

这是我的代码不起作用:

private _images: any[];
private threeImages: any[];

@Input() 
set images(images: any[]) {
    this._images = images;
    for(let i=0; i < 3; i++){
        this.threeImages = images[i];
    }
}
get images() { return this._images }

为什么我不能使用setter拦截输入属性的输入属性更改?什么是实现我想要的结果的好方法?

1 个答案:

答案 0 :(得分:2)

它正在运作,请看我的plunker:https://plnkr.co/edit/ZIjepnYZ5IS8FfktU0C1?p=preview

您需要将这些<title>New Test</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> <thead> <tr><td rowspan="1" colspan="3">New Test</td></tr> </thead><tbody> <tr> <td>open</td> <td>/common/oauth2/authorize?client_id/td> <td></td> </tr> <tr> <td>assertTitle</td> <td>Sign in to your account</td> <td></td> </tr> <tr> <td>type</td> <td>id=cred_userid_inputtext</td> <td>example@example.com</td> </tr> <tr> <td>click</td> <td>id=cred_password_inputtext</td> <td></td> </tr> <tr> <td>type</td> <td>id=cred_password_inputtext</td> <td>password1</td> </tr> <tr> <td>clickAndWait</td> <td>id=cred_sign_in_button</td> <td></td> </tr> <tr> <td>click</td> <td>css=span.ms-Icon--outlook</td> <td></td> </tr> <tr> <td>select</td> <td>id=selTz</td> <td>label=‎(UTC-08:00)‎ Pacific Time ‎(US &amp; Canada)‎</td> </tr> <tr> <td>clickAndWait</td> <td>css=span.signinTxt</td> <td></td> </tr> <tr> <td>click</td> <td>xpath=(//button[@type='button'])[12]</td> <td></td> </tr> <tr> <td>clickAndWait</td> <td>xpath=(//button[@type='button'])[51]</td> <td></td> </tr> <tr> <td>click</td> <td>//table[@id='use_another_account']/tbody/tr/td/table/tbody/tr[2]/td[2]/div</td> <td></td> </tr> </tbody></table> </body> </html>推送到数组,而不是每次都分配它。

images[i]