将变量传递给 phalcon 中的伏特模板中的函数

pass variable to function in volt template in phalcon

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

你的方向是正确的,但你要考虑得更远一些。

此时您有以下代码:

<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