字符串树枝文件中的Javascript变量

时间:2018-07-21 16:21:24

标签: javascript twig jsgrid

我需要像下面的代码一样设置变量id的值,

 { type: "control",
                itemTemplate: function(_,item) {

                   var id = item['postId'];
                   var $result = jsGrid.fields.control.prototype.itemTemplate.apply(this, arguments);
                   var $myButton = $("<a style='margin-left:5px;' href='{{ path('updatefull', {'post_id': "+id+"}) }}'><i class='far fa-edit'></i></a>");
                    return $result.add($myButton);
                }
}

但这不起作用。它显示/ + id +而不是id的值(例如,类似于/ 6)。该如何解决?

2 个答案:

答案 0 :(得分:0)

Twig模板始终总是首先在服务器上运行,并编写一个发送到客户端的模板。然后,该模板中的JS可以在浏览器中运行。您期望JS声明变量id,然后Twig调用path,然后JS继续工作,这是不可能的。您必须以另一种方式将id变量放入Twig。

答案 1 :(得分:0)

这是我解决的方式,

{ type: "control",
                itemTemplate: function(_,item) {

                   var id = item['postId'];
                   var path = '{{ path("updatefull", {'post_id': 'id'}) }}';
                    path = path.replace("id", id);
                   console.log(path);
                   var $result = jsGrid.fields.control.prototype.itemTemplate.apply(this, arguments);
                   var $myButton = $("<a style='margin-left:5px;' href="+path+"><i class='fa fa-edit'></i></a>");
                    return $result.add($myButton);
                } 

}