php - 在作为 Assets 包含的 javascript 文件中使用 Laravel 函数

标签 php javascript jquery laravel laravel-blade

假设我有一段 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/

相关文章:

javascript - 进行 while 循环延迟重复,直到其中的 ajax 调用完成

php - 如何在 CakePHP 中执行此查询?

javascript - 允许用户垂直调整 block 的大小并使其下方的所有内容向后/向前推

javascript - 使用 D3 根据嵌套数据有条件地附加

javascript - 黑客新闻 API - 获取最受欢迎的项目

jquery - 当使用 ajax 和 jquery 打开它时,我的链接不起作用

javascript - 传入undefined的目的是什么?

php - 从另一页上的特定表格单元格中选择文本?

php - 使用php从mysql数据库中的数组中提取特定数据

php - MySQL数据库搜索php问题