传递变量以在Phalcon的volt模板中起作用

时间:2019-05-16 09:09:35

标签: javascript twig phalcon volt

这是我传递数据以查看的控制器: 在这里,我传递了一个名为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>

1 个答案:

答案 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>

demo