假设我有一段jQuery javascript在加载时绑定到 div ,并在该div中动态定义 img 。像这样:
$(document).ready(function() {
$("#container").html("<img href='/images/myimage.jpg/>');
});
如果我在Laravel视图中使用此内联,我将能够使用 HTML :: image()和Blade模板来指定图像的位置。像这样:
$(document).ready(function() {
$("#container").html("{{ HTML::image('images/myimage.jpg', 'My image') }}");
});
如果我当时要使用那段javascript,而不是在视图中内嵌它,请将其放在单独的.js文件中,例如 public / js / image.js ,我可以让Laravel将其作为资产加载;
Asset::add('image.js', 'js/image.js');
但是,由于它现在仅作为资产处理,因此Laravel PHP和Blade模板代码都不会被处理,因此我们实际上得到字符串 {{HTML :: image('images / myimage.jpg',生成的html中的“我的图片”)}} ,而不是模板化值。
对于这样的事情有没有好的方法?
答案 0 :(得分:4)
我在这里这样做。我发现的方式是:
1 - 在视图目录树中创建一个'js'文件,类似于
app\views\javascript\mycustomJS.blade.php
2 - 然后在任何需要的地方呈现:
<script>
@include('javascript.mycustomJS')
</script>
它是刀片,它将按预期进行处理。
我知道这远非理想,但现在对我有用。 :)
答案 1 :(得分:0)
我认为你可以把它放在一个php文件中。我之前用css做过这个。
Asset::add('image.php', 'js/image.php');