Не могу вызвать функцию JavaScript в PHP-файле (Laravel) - PullRequest
0 голосов
/ 07 сентября 2018

Я сейчас учусь ларелю с QR-кодом. Я использую код, полученный от github . Работает нормально, когда я запускаю HTML-файл. Но когда я добавляю код в файл php (Laravel), я получаю сообщение об ошибке.

Ошибка:

ErrorException (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);
    }   }

Спасибо, извините за мой плохой английский.

1 Ответ

0 голосов
/ 07 сентября 2018

Вы должны поставить @ перед {{formatName (camera.name)}}

@{{ formatName(camera.name) }}

Посмотрите на документ Laravel https://laravel.com/docs/5.6/blade#blade-and-javascript-frameworks:

Поскольку во многих JavaScript-фреймворках также используются "фигурные" скобки, чтобы указать, что данное выражение должно отображаться в браузере, вы можете использовать символ @, чтобы сообщить механизму рендеринга Blade, что выражение должно остаться нетронутым

EDIT:

Поскольку вы выглядите так, как будто используете vue.js, вы также можете использовать директиву v-text следующим образом:

<span v-if="camera.id == activeCameraId" :title="formatName(camera.name)" class="active" v-text="formatName(camera.name)"></span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...