【问题标题】:Cant call javascript function in php file (Laravel)无法在 php 文件中调用 javascript 函数(Laravel)
【发布时间】:2019-02-12 20:44:38
【问题描述】:

我目前正在使用二维码学习 laravel。我使用从github 获得的代码。当我运行 html 文件时它工作正常。但是当我在 php 文件(Laravel)中添加我的代码时,我得到了一些错误。

错误:

错误异常 (E_ERROR) 调用未定义函数 formatName()(查看:C:\xampp\htdocs\museumadityawarman\resources\views\topups\scan_qrcode.blade.php)

错误指出了我的这部分观点:

<span v-if="camera.id == activeCameraId" :title="formatName(camera.name)" class="active">{{ formatName(camera.name) }}</span>

<li v-for="scan in scans" :key="scan.date" :title="scan.content"><script type="text/javascript">{{scan.content}}</li>

我尝试过改变

{{ formatName(camera.name) }}

<script>formatName(camera.name);</script>

这确实修复了错误消息,但我仍然无法获取值。

这是一些 Javascript 代码:

 methods: {
    formatName: function (name) {
      return name || '(unknown)';
    },
    selectCamera: function (camera) {
      this.activeCameraId = camera.id;
      this.scanner.start(camera);
    }   }

谢谢,对不起我的英语不好。

【问题讨论】:

  • 什么是camera?它是 php 变量还是 javascript 变量?您不能混合使用 PHP 和 javascript 代码,因为 PHP 只在页面发送到浏览器之前运行,而 javascript 则在之后运行。
  • 相机来自 javascript。我没有在那里使用 php 命令,我只是从 html 中添加我从 github 到 Laravel

标签: javascript php html laravel


【解决方案1】:

您必须在 {{ formatName(camera.name) }}

之前放置一个 @
@{{ formatName(camera.name) }}

查看 Laravel 文档https://laravel.com/docs/5.6/blade#blade-and-javascript-frameworks

由于许多 JavaScript 框架也使用“大括号”来指示应在浏览器中显示给定表达式,因此您可以使用 @ 符号来通知 Blade 渲染引擎某个表达式应保持不变

编辑:

因为你看起来像在使用 vue.js,你也可以像这样使用指令 v-text:

<span v-if="camera.id == activeCameraId" :title="formatName(camera.name)" class="active" v-text="formatName(camera.name)"></span>

【讨论】:

  • 谢谢兄弟。我会尝试你的建议。如果我的问题得到解决,我会发表评论:)
  • 很高兴我能帮上忙!祝你有美好的一天:-)
猜你喜欢
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多