2017-12-24 20 views
-3

コードでわかるように、オブジェクト内に配列値を動的に作成しようとしましたが、デバッグ時に問題はありませんが、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> 
+0

ngOnInit() { this.postComment(0, 'comment'); console.log(this.newsFeeds); } postComment(index: number,value: string){ this.newsFeeds[index].comments.push(value); } 
関数の引数に宣言することで

console.log(newsFeeds);

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 } ]; 

でそれをテストし、あなたがそれを数値と文字列を供給していることを確認することができますダム引用符で​​はなく引用符で囲みます:これはコピーの貼り付けエラーですか、それともあなたのコードで本当にスマートな(そして無効な)引用符を使用していますか? – Terry

+0

コピー貼りの間違いだった... –

+0

@ j.doe、あなたはこの問題を解決しましたか? – Iancovici

答えて

0

は適切な型を使用して配列を宣言してみてください。

private newsFeeds : Array<any> = ... 
+0

それは動作しません –

0

作品は私にとって

あなたのオブジェクトが正しく解釈されていることを確認します。あなたの一重引用符を置き換える必要がありました。あなたは、あなたのコードは、あなたがスマート使用していることを示してenter image description here

+0

それは私のためには機能しません....実際には、入力ボックスkeyup.enterイベントでこの関数を呼び出しています、私は角度とtypescriptとIonic 3で作業しており、私は被介護者です。

+0

@ j.doeここで公開している内容についてのみお手伝いします。オブジェクトと関数がうまく動作しているように見えますので、これは明らかにフィードの入力に問題があります。 – Iancovici

+0

私の入力は正しかったですが、pushメソッドを呼び出す前にコンソールログからチェックしましたが、インデックスと値の値は問題ありませんでしたが、プッシュでエラーがスローされますか?

関連する問題