如何将值传递给(Jade)哈巴狗中的onclick函数?

时间:2016-08-26 07:05:00

标签: javascript pug

我是玉的新手并坚持这个问题。我想我已经尝试了StackOverflow帖子中的所有内容,但仍然一无所获。

我尝试过的事情

button(type='button' class=' c-btn-blue c-btn-circle c-btn-uppercase' value="Read More" onclick='gotoBlog( #{val.link} )')

错误

1:8 Uncaught SyntaxError: Invalid or unexpected token

将其更改为!{val.link}

错误

Uncaught SyntaxError: Unexpected token .

将其更改为"!{val.link}""#{val.link}"只是让我理解这一点。 BTW val.link是一个字符串

只是给val.link说Uncaught ReferenceError: val is not defined

我现在没有选择。将不胜感激。

谢谢

8 个答案:

答案 0 :(得分:6)

当向html元素添加属性时,您已经在pug的范围内,因此您可以使用像常规js变量这样的pug变量。

button(type='button' class=' c-btn-blue c-btn-circle c-btn-uppercase' value="Read More" onclick='gotoBlog(' + val.link + ')')

答案 1 :(得分:1)

使用不同的嵌套引号,以便将字符串传递给gotoBlog函数。在这里,我在双刻度内使用单个刻度。

button(type='button' class=' c-btn-blue c-btn-circle c-btn-uppercase' value="Read More" onclick="gotoBlog( '#{val.link}' )")

换句话说:

button( onclick= "myFunction('#{stringVariable}')" )

答案 2 :(得分:1)

我只是使用下面的代码,它对我有用(带引号和pos引号)

button(type='button', onclick='someFunction("'+ yourObject.id +'")' ) PressMe

答案 3 :(得分:0)

你只需要点击onclick =" myfunction(#{varible.atributo})"

这是一个例子:

table
thead
    tr
        th #ID
        th Description
        th Actions
tbody
    each item, i in itemlist
        tr
            th(scope='row') #{item.id}
            td #{item.description}
            td
                button(onclick="editItem(#{item.id})", title="Edit")
                    |  Edit

答案 4 :(得分:0)

我遇到了类似的问题并且以不同的方式解决了它(通过逃避params)。 在我的情况下,我需要在单击按钮时将以下template values传递给javascript函数作为参数

{
  url:"http://google.com",
  token: "Bearer your-token", 
  accountId: "abc123"
}

所以我案例中的pug看起来如下

button(onclick='authenticate(\'' + url + '\',\'' + token + '\',\'' + accountId + '\')') Login

结果html如下

<button onclick="authenticate('http://google.com','Bearer your-token','abc123')">Login</button>

答案 5 :(得分:0)

在函数中使用多个参数时,可以达到目的:

'myFunction(' + '"' + varA + '"' + ',' + '"' + varB + '"' + ')'

注意:外部/内部/所有引号可以是'(单引号)或"(双引号),为了便于阅读,我使用了单引号和双引号。

答案 6 :(得分:0)

button(type ='button',onClick ='function(\''+ someValue +'\')')文本

这对我来说很有效,可以使用传递给pug的onClick函数中的值。

答案 7 :(得分:0)

为时已晚,我知道:(

但是,这可能很有用!

`${}`

所以代码将是

button(type='button' class=' c-btn-blue c-btn-circle c-btn-uppercase' value="Read More" onclick=`gotoBlog( ${val.link} )`)