这是我传递数据以查看的控制器: 在这里,我传递了一个名为name的变量:
class IndexController extends ControllerBase
{
public function indexAction()
{
$this->assets->addJs('js/script.js');
$this->view->setVar('name', 'john');
}
}
在我的volt文件中,我可以使用名称变量,例如创建诸如{{name}}
之类的标题标签,这很好,但是我想要做的一件事是我想将名称变量传递给js函数。当我将数据从伏特传递到我的剧本时。我的js文件中name变量的值为undefined
。我该怎么办??
<div class="form-group d-flex justify-content-center">
<h1 style="color:red;">{{ name }}</h1> //it works
<button onclick="changeLevel(1, 2,{{ name }})" type="submit" class="btn btn-block rounded buttonStyle " id="SendPhone" disabled>تایید شماره</button>
</div>
答案 0 :(得分:3)
您处在正确的轨道上,但您需要再思考一点。
此刻,您具有以下代码:
<button onclick="changeLevel(1, 2,{{ name }})>Click</button>
通过twig
运行此代码时,将得到以下输出:
<button onclick="changeLevel(1, 2, john)>Click</button>
这意味着,您会将变量john
传递给函数changeLevel
,但是john
在javascript中不是已知变量。
因此,您真正想要做的是传递文字字符串john
,您可以通过引用输出来实现此目的,例如
<button onclick="changeLevel(1, 2,'{{ name }}')>Click</button>