将Erlang List的数据输出为Yaws中的HTML

时间:2013-05-08 11:29:51

标签: erlang yaws

查看下面的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]) 

不会打印到浏览器。

为了让它起作用,我可以改变什么?

1 个答案:

答案 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>块中一样。