Laravel: проблема с отображением JavaScript внутри блока Blade @if - PullRequest
0 голосов
/ 28 июня 2018

Можно ли сделать что-то подобное ...

@if(Session::has('foo'))
    <script>
    // My JavaScript function
    </script>
@endif

Я пытаюсь поместить пиксельный код Facebook, только если есть определенная переменная сеанса.

Пожалуйста, сообщите.


Пожалуйста, обратите внимание [Обновление]: Переменная сеанса в порядке. Я могу это прочитать. Проблема где-то еще. Это сбивает с толку меня.

Вот код:

@if(session('displayPixelCode'))
    #1. Session variable's value is : {{ session('displayPixelCode') }}          
    <script>
        // My JavaScript code goes here 
    </script>
@else
    #2. Session variable's value is : {{ session('displayPixelCode') }}
    <script>
        // My JavaScript code goes here 
    </script>
@endif

Если я посмотрю на нижнюю часть представленного представления , я увижу это (правильное значение переменной сеанса) ... enter image description here

Если я посмотрю на источник отрисованной страницы , то увижу это (выполняется ветвь @else). enter image description here

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Я наконец понял, что это вызвало. Пришлось использовать !is_null(session('displayPixelCode'))

Вот как это выглядит сейчас:

@if(!is_null(session('displayPixelCode')))
    <script>
        !function(f,b,e,v,n,t,s)  
        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?  
        n.callMethod.apply(n,arguments):n.queue.push(arguments)};  
        if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';  
        n.queue=[];t=b.createElement(e);t.async=!0;  
        t.src=v;s=b.getElementsByTagName(e)[0];  
        s.parentNode.insertBefore(t,s)}(window, document,'script',  
        'https://connect.facebook.net/en_US/fbevents.js');  
        fbq('init', 'xxxxxxxxxxxxxxxx');  
        fbq('track', 'PageView');  
        fbq('track', 'Lead');  
    </script> 
    <noscript>
        <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=xxxxxxxxxxxxxxxx&ev=PageView&noscript=1"/>
    </noscript>       
@endif
0 голосов
/ 28 июня 2018

Я использую laravel 5.4 и он работает, он может вам помочь

@if(!empty(\Session::has('sessVar')))
    <script type="text/javascript">
      function myFunction(p1, p2) {
        return p1 * p2;
      }

      var ale = myFunction(4, 3);
      alert(ale);
   </script>
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...