2017-04-19 98 views
2

在平坦的PHP代码我可以只写这行这样的,我得到的图片我想symfony:使用javascript的资产图像?

imageString = "<image src=\"" + pieceFileName + "\" class=\"Piece clickElement " + rankName + " " + fileName + "\"/>"; 

但使用javascript symfony的怎么样?

我试着写这段代码一样,但我以前不工作

imageString = "<img src=\"""{{ asset(' \""+ pieceFileName +"\" ')}}""\" class=\"Piece clickElement " + rankName + " " + fileName + "\"/>"; 

的完整代码

function AddGUIPiece(sq,pce) { 
    var rank = RanksBrd[sq]; 
    var file = FilesBrd[sq]; 
    var rankName = "rank" + (rank + 1); 
    var fileName = "file" + (file + 1); 
    pieceFileName = "images/" + SideChar[PieceCol[pce]] + PceChar[pce].toUpperCase() + ".png"; 
    imageString = "<image src=\"" + pieceFileName + "\" class=\"Piece clickElement " + rankName + " " + fileName + "\"/>"; 
+0

@DarkBee是的,我使用helloworld代码测试它,然后添加上面的代码 – mrsharko

+1

您必须考虑枝条是像PHP一样。它被呈现在服务器端。在这里你试图根据一个JS变量'''pieceFileName'',这是客户端的不同资产。所以你所看到的是不可能的。你应该更愿意去一个AJAX解决方案。 查看相关问题:http://stackoverflow.com/q/13840429/2123530 –

+0

@ b.enoit.be你是对的,所以我需要在树枝文件中添加资产行,然后将其传递给JavaScript文件那你的意思是? – mrsharko

回答

3

枝条,像PHP,将在第一渲染/调用服务器上运行。所以它不能像你所做的那样与代码的动态部分相结合。

但是,如果所有这些图像都在同一个文件夹中,为什么不保存路径呢?

<script> 
var guiPiecePre = "{{ asset('images') }}"; 
</script> 

一旦你已经确定的是,串联这个字符串像这样

pieceFileName = guiPiecePre + SideChar[PieceCol[pce]] + PceChar[pce].toUpperCase() + ".png"; 

的关键是正确的道路,那guiPiecePre将有一个静态值(你甚至可以看到它的渲染HTML,如果你检查源),并通过JS需要时添加动态部分。