Node.js + Express + ejsでチャットアプリを作っています。
クリックしたらチャット一覧を取得して表示するプログラムです。
if文は自分が送信したメッセージと自分が受け取ったメッセージを振り分けています。
jsonデータを受け取ったまではいいんですが、うまく表示できません。
jsonデータはこのように表示されます。
0: {id: 1, room_id: 1, message: "最初のメッセージ", sender: "aaa", receiver: "bbb", …}
1: {id: 2, room_id: 1, message: "bさんのメッセージ", sender: "bbb", receiver: "aaa", …}
2: {id: 3, room_id: 1, message: "3回目のメッセージ", sender: "aaa", receiver: "bbb", …}
3: {id: 4, room_id: 1, message: "4回目のメッセージ", sender: "aaa", receiver: "bbb", …}
json[i].messageのiのところでエラーが出ているのかなと怪しんでいるのですがよくわかりません。
よろしくおねがいします。
node.js
1<div class="messages"> 2 <%- include('./messages') %> 3</div> 4 5$("#contacts li").on("click", function () { 6 $.getJSON("/ajax?id=" + m, function (json) { 7 console.log(json); 8 var i=0; 9 var msg = 10 '<ul>' + 11 '<% for( var i in' + json + ') { %>' + 12 '<% if(' + json[i].sender + ' == login.id){ %>' + 13 '<li class="sent">' + 14 '<p>' + json[i].message + '</p>' + 15 '</li>' + 16 '<% }else{ %>' + 17 '<li class="replies">' + 18 '<p>' + json[i].message + '</p>' + 19 '</li>' + 20 '<% } %>' + 21 '<% } %>' + 22 '</ul>'; 23 $('.messages').html(msg); 24 }); 25 });
当初は以下のようなエラーメッセージが出ていましたが、
var i =0;と記述することでエラーメッセージはなくなりました。
それによってjson[0].messageが繰り返し表示されるようになりました。
添字を増やしながらJSONデータを表示させるいい方法はないでしょうか?
pen.js:51 Uncaught ReferenceError: i is not defined
at Object.success (pen.js:51)
at i (jquery-2.2.4.min.js:2)
at Object.fireWith [as resolveWith] (jquery-2.2.4.min.js:2)
at z (jquery-2.2.4.min.js:4)
at XMLHttpRequest.<anonymous> (jquery-2.2.4.min.js:4)
回答1件
あなたの回答
tips
プレビュー