我目前正在通过二维码学习 Laravel。我使用从 github 获得的代码。当我运行 html 文件时它工作正常。但是当我在 php 文件(Laravel)中添加代码时,我收到一些错误。
错误:
ErrorException (E_ERROR) Call to undefined function formatName() (View: 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);
} }
谢谢,抱歉我的英语不好。
最佳答案
您必须在 {{ formatName(camera.name) }} 之前添加 @
@{{ formatName(camera.name) }}
查看 Laravel 文档 https://laravel.com/docs/5.6/blade#blade-and-javascript-frameworks :
Since many JavaScript frameworks also use "curly" braces to indicate a given expression should be displayed in the browser, you may use the @ symbol to inform the Blade rendering engine an expression should remain untouched
编辑:
由于您看起来正在使用 vue.js,因此您也可以使用指令 v-text,如下所示:
<span v-if="camera.id == activeCameraId" :title="formatName(camera.name)" class="active" v-text="formatName(camera.name)"></span>
关于javascript - 无法在 php 文件中调用 javascript 函数(Laravel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52223504/