首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转义Elixir模板

转义Elixir模板
EN

Stack Overflow用户
提问于 2015-12-25 11:51:24
回答 1查看 569关注 0票数 0

我有两个文件,其中包括:

代码语言:javascript
复制
def do_query_sys_status do
    f = EEx.eval_file("templates/do_query_sys_status.eex", 
            [assigns: [data: %{sysvar: 3, coutry_id: 1, webapi_key: "abc123456" }]])
    IO.puts f
end

和一个模板文件:

代码语言:javascript
复制
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ser="https://webapi.allegro.pl/service.php">
    <x:Header/>
    <x:Body>
        <ser:DoQuerySysStatusRequest>
            <ser:sysvar><%= @data.sysvar =></ser:sysvar>
            <ser:countryId><%= @data.country_id %></ser:countryId>
            <ser:webapiKey><%= @data.webapi_key %></ser:webapiKey>
        </ser:DoQuerySysStatusRequest>
    </x:Body>
</x:Envelope>

运行它之后,我得到了一个错误:

代码语言:javascript
复制
** (SyntaxError) templates/do_query_sys_status.eex:7: keyword argument must be followed by space after: ser:
                   lib/eex/compiler.ex:34: EEx.Compiler.generate_buffer/4
                   lib/eex.ex:209: EEx.eval_file/3
    (bankinfo_api) lib/bankinfo_api.ex:25: BankinfoApi.do_query_sys_status/0
          (stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
             (iex) lib/iex/evaluator.ex:117: IEx.Evaluator.handle_eval/5

是否有必要以某种方式逃避模板?我还没找到什么办法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-25 13:22:44

你的代码里有排字

代码语言:javascript
复制
coutry_id

应该是

代码语言:javascript
复制
country_id

templates/do_query_sys_status.eex的第6行应该是

代码语言:javascript
复制
<ser:sysvar><%= @data.sysvar %></ser:sysvar>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34462589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档