コードでわかるように、オブジェクト内に配列値を動的に作成しようとしましたが、デバッグ時に問題はありませんが、pushメソッドを使用しようとしました配列はエラーをスローします。私は角度4のIonic 3で作業しています。入力ボックスのkeyup.enterイベントで関数を呼び出しています。オブジェクト内のjavascript配列に値をプッシュできません
// this is the object
private newsFeeds=[
{
avatarUrl:’…/assets/fb/avatar.png’,
userName:‘Karim Benzema’,
time:‘16 minutes ago’,
caption:‘Wow!!!’,
imageUrl:‘https://upload.wikimedia.org/wikipedia/commons/e/ec/Ara_ararauna_Luc_Viatour.jpg’,
like:‘Like’,
numberOfLikes:2,
comments:['hello'],
isCommentEnable:false
},
{
avatarUrl:’…/assets/fb/avatar2.png’,
userName:‘Unknown Singh’,
time:‘2 hrs ago’,
caption:‘Pc:Unknown’,
imageUrl:‘https://i.pinimg.com/736x/50/e0/b6/50e0b65efd2d634053d7a8d1cd9d94fc--so-funny-funny-
stuff.jpg’,
like:‘Like’,
numberOfLikes:3,
comments:[],
isCommentEnable:false
}
];
postComment(index,value){
console.log(`${index} : ${value}`); //shows correct index and value
this.newsFeeds[index].comments.push(value); //-->error
//Throws runtime error ‘comments.push is not a function’
}
私のHTMLコード:
<ion-list [virtualScroll]= “newsFeeds”>
<ion-card *virtualItem=“let f; let i=index”>
<span *ngIf=“f.isCommentEnable”>
<input type=“text” [(ngModel)]=“f.comments” (keyup.enter)=“postComment(this.i,item.value);” #item>
</span>
</ion-card>
</ion-list>
console.log(newsFeeds);
でそれをテストし、あなたがそれを数値と文字列を供給していることを確認することができますダム引用符ではなく引用符で囲みます:これはコピーの貼り付けエラーですか、それともあなたのコードで本当にスマートな(そして無効な)引用符を使用していますか? – Terry
コピー貼りの間違いだった... –
@ j.doe、あなたはこの問題を解決しましたか? – Iancovici