假设我有一段 jQuery javascript,它在加载时绑定(bind)到一个 div 并在该 div 中动态定义一个 img。像这样:
$(document).ready(function() {
$("#container").html("<img href='/images/myimage.jpg/>');
});
如果我在 Laravel View 中使用内联,我将能够使用 HTML::image() 和 Blade 模板来指定图像的位置。像这样:
$(document).ready(function() {
$("#container").html("{{ HTML::image('images/myimage.jpg', 'My image') }}");
});
如果我当时使用那段 javascript,而不是将它内联到 View 中,而是将它放在一个单独的 .js 文件中,比如 public/js/image.js,我可以让 Laravel 将它作为 Assets 加载;
Asset::add('image.js', 'js/image.js');
然而,由于它现在仅被视为 Assets ,Laravel PHP 和 Blade 模板代码都没有被处理,所以我们从字面上得到字符串 {{ HTML::image('images/myimage.jpg', 'My image') }} 在生成的 html 中,而不是模板化的值。
对于这样的事情有好的方法吗?
最佳答案
我在这里做这个。我找到的方法是:
1 - 在 View 目录树中创建一个“js”文件,类似于
app\views\javascript\mycustomJS.blade.php
2 - 然后在你需要的地方渲染它:
<script>
@include('javascript.mycustomJS')
</script>
它是 Blade ,它应该被处理。
我知道这远非理想,但目前对我有用。 :)
关于php - 在作为 Assets 包含的 javascript 文件中使用 Laravel 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16637576/