查看下面的index.yaws文件
<html>
<body>
<h4>Data:</h4>
<erl>
out(Arg) ->
Data = utilities:get_raw_data(),
{html, io_lib:format("~p", [Data])}.
</erl>
<erl>
out(Arg) ->
Data = utilities:get_raw_data(),
lists:foreach(fun(X) -> {Id, Fname, Lname} = X, io:format("ID: ~p ", [Lname]) end, Data).
</erl>
</body>
</html>
代码的第一部分正确运行,产生输出,如
[{3,"Matt","Williamson3"}, {2,"Matt","Williamson2"}, {1,"Matt","Williamson"}]
第二部分没有错误,但网页仍为空白。我相信这一节
io:format("ID: ~p ", [Lname])
不会打印到浏览器。
为了让它起作用,我可以改变什么?
答案 0 :(得分:2)
尝试使用此代替foreach
行:(未经测试)
{html, lists:map(fun(X) -> {Id, Fname, Lname} = X, io_lib:format("ID: ~p ", [Lname]) end, Data)}.
也就是说,不是使用io:format
打印,而是在{html, Iodata}
元组中返回数据,就像在第一个<erl>
块中一样。