首页 > 解决方案 > 拉拉维尔。webpack.mix.php 是运行 Javascript 的唯一方法吗?

问题描述

我试图在 textarea 中添加一个简单的字符数,我花了一天的时间才让它工作。我想发布我学到的东西,并要求任何有帮助的用户澄清。

在我将脚本上传到ProjectRoot/resources/js/app.js之前,Laravel 没有运行 javascript 。

var maxLength = 100;
$('textarea').keyup(function() {
  var length = $(this).val().length;
  var length = maxLength-length;
  $('#chars').text(length);
});

一旦代码在那里,我运行npm run dev(我已经在这个 piont 安装了 npm),然后才运行了 javascript。代码被传输到ProjectRoot/public/js/app.js(这是一个我找不到代码的大文件)目录中的 app.js 文件中。我假设,如果我错了,请纠正我,这意味着 npm run dev "converts" /"transfers" /"compiles" (这里的正确词是什么?) javascript 到 laravel webmix 系统。这就是我的知识和解决问题的能力已经耗尽的地方。

像这样这样的文章听起来就像我可以将 javascript 放到任何 xxx.blade.php 文件中一样。其他一些不起作用的角度:

我得到了经典的Uncaught ReferenceError: $ is not defined in the chrome inspector console,但是倒计时有效,所以我不确定发生了什么。

我可以使用 Laravel 在我的 xxx.blade.php 中运行 javascript 内联吗?

标签: javascriptjquerylaravel

解决方案


在您要使用脚本的刀片文件中:

@push('js')
<script>
var maxLength = 100;
$('textarea').keyup(function() {
  var length = $(this).val().length;
  var length = maxLength-length;
  $('#chars').text(length);
});
</script>
@endpush

并在您的 app.blade.php (包含所有 js/css 文件的主刀片)中

@stack('js')

推荐阅读