0

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

不会打印到浏览器。

为了让它工作,我需要改变什么?

4

1 回答 1

2

试试这个而不是foreach行:(未经测试)

    {html, lists:map(fun(X) -> {Id, Fname, Lname} = X, io_lib:format("ID: ~p ", [Lname]) end, Data)}.

也就是说,不是使用打印,而是io:format以元组的形式返回数据{html, Iodata},就像在第一个<erl>块中一样。

于 2013-05-08T11:41:41.913 回答