帕格`#{}`无法在`onclick`中加载变量

时间:2016-07-01 15:41:39

标签: node.js onclick pug

所以我使用javascript对象来呈现项目列表。我的对象看起来像这样:

{
            text: 'One',
            url: 'index.pug'
        },
        {
            text: 'Two',
            url: 'Two.pug'
        },
        {
            text: 'Three',
            url: 'Three.pug'
        }
}

有趣的部分是当哈巴狗呈现它们时。我正在使用这样的东西渲染它们:

div
    ul.horizontalScroll
        each item in params.apps
            li
                a(onclick="loadXMLDoc(#{item.url})") #{item.text}

我无法弄清楚为什么item.text正确呈现,但点击链接不会ping函数。在chrome检查员中,我看到了这一点:<a onclick="loadXMLDoc(#)">One </a>。为什么这个论点不像index.pug那样通过呢?

2 个答案:

答案 0 :(得分:4)

尝试连接属性中的变量:

a(onclick="loadXMLDoc('" + item.url + "')") #{item.text}

答案 1 :(得分:0)

接受的解决方案对我不起作用。我能够继续前进,略有不同。

a(onclick="loadXMLDoc('#{item.url}')") #{item.text}

注意单引号和双引号的区别。另请注意,因为文本自动填充可能会尝试添加更多引号。

此解决方案有效,因为 loadXMLDoc 需要一个字符串。您需要使用不同的引号字符,以便在将url字符串转换为html时将其嵌套在属性字符串中。