我正在创建node.js应用。
我有一个包含4种类型电影的列表(见下文)。
当我点击其中一种类型时,我会调用服务器,然后服务器从数据库中检索该类型的电影并将结果发回给我。 在我的客户端,我可以正确地看到服务器发送给我的结果,但我无法循环结果,以便将所有电影打印到屏幕上。
<ul>
<li id="Animation">Animation</li>
<li id="Action">Action</li>
<li id="Comedy">Comedy</li>
<li id="Drama">Drama</li>
</ul>
<ul>
<% movies.forEach(function(movie){ %> // doesnt work
<li><%= movie.id %> - <%= movie.title %></li>
<% }) %>
</ul>
<script>
$( document ).ready(function() {
$('li').click(function(){
var movieType = $(this).attr('id');
$.post('findMovies', { type: movieType}, function(data){
console.log(data); // I see the array correctly in browser's console
var movies = data;
});
});
});
</script>
答案 0 :(得分:0)
在回调函数内循环:
...
$.post('findMovies', { type: movieType}, function(data){
data.forEach(function(movie){
var li = $('<li/>')
.text(movie.id + ' - ' + movie.title)
.appendTo(ulRef);//assuming ulRef is a reference to the ul element above
});
});
...
您的代码无效,因为
<% movies.forEach(function(movie){ %>
<li><%= movie.id %> - <%= movie.title %></li>
<% }) %>
在&#34; post&#34;之后没有重新处理完成。