2016-08-23 5 views
0

javascriptで配列オプションを使用しているときに覚えているとおり、正しく書くといいと思いますが、これらはオブジェクトリテラルと呼ばれます。私はオブジェクトのリテラルで@ifステートメントを使用する方法を見つけることができない問題があります。 私は小規模なサイトを持っていて、welcome.blade.phpテンプレート内にすべてがありますので、別のJavaScriptファイルはありません。私が使用する関数は、タグ内のテンプレートの一番下にあります。だからここに私はinnerHTML$workersからすべての情報を取得する必要が見ることができ、かつHTMLコンテンツとして出力する必要がありますように私はLaravelと@if文中のjavascriptオブジェクトリテラル

<script> 
     var employees = [ 
      @foreach ($workers->chunk(20) as $chunk) 
      [ 
       @foreach ($chunk as $worker) 
        { 
         innerHTML:'<div class="container-fluid full-height"><div class="row full-height"><div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 full-height"><div class="person-info"><blockquote><h1>{{ $worker->first_name }} {{ $worker->last_name }}</h1>{{{ $worker->function !== '') ? <footer>{{ $worker->function }}</footer> : '' }}}</blockquote></div></div><div class="col-xs-5 col-sm-5 col-md-5 col-lg-5 col-lg-offset-1 col-md-offset-1 col-sm-offset-1 full-height"><div class="person-photo"><img class="img-responsive" src="thumbs/{{ $worker->image }}" /></div></div></div></div>', 
         src:"thumbs/{{ $worker->thumbnail }}" 
        }, 
       @endforeach 
      ], 
      @endforeach 
     ] 
    </script> 

を持って全体の機能があるが、いくつかのフィールドとして、データベース内の空になりますので、これらのフィールドは、いくつかのコードに

{{{ $worker->function !== '') ? '<footer>{{ $worker->function }}</footer>' : '' }}} 

を表示するには、空ではありませんが、私はどのようにinnerHTMLコンテンツ内の文が動作する場合得るためにそれを得ることができない場合、私は@if文を記述する必要があります。

編集:私はそれが働いて得たことを最も近いが、このようなものです:

'{{ $worker->function ? "<footer> $worker->function </footer>" : "" }}' + 

しかし、これはちょうど今、私は

ジョン・ドウ<footer>品質管理</footer>

のように持っているので、 <footer>で完全に出力をレンダリング

答えて

0

このようにしてください

<script> 
var employees = [ 
    @foreach ($workers->chunk(20) as $chunk) 
    [ 
     @foreach ($chunk as $worker) 
      { 
       innerHTML:'<div class="container-fluid full-height">' 
          +'<div class="row full-height">' 
           +'<div class="col-xs-3 col-sm-3 col-md-3 col-lg-3 full-height">' 
            +'<div class="person-info">' 
             +'<blockquote>' 
              +'<h1>' {{ $worker->first_name }} {{ $worker->last_name }} +'</h1>' 
               @if($worker->function != '') 
               +'<footer>' {{ $worker->function }} +'</footer>' 
               @endif 
             +'</blockquote>' 
            +'</div>' 
           +'</div>' 
           +'<div class="col-xs-5 col-sm-5 col-md-5 col-lg-5 col-lg-offset-1 col-md-offset-1 col-sm-offset-1 full-height">' 
            +'<div class="person-photo">' 
             +'<img class="img-responsive" src="thumbs/{{ $worker->image }}" />' 
            +'</div>' 
           +'</div>' 
          +'</div>' 
          +'</div>', 
       src:"thumbs/{{ $worker->thumbnail }}" 
      }, 
     @endforeach 
    ], 
    @endforeach 
] 
</script> 
+0

いいえ、これは動作しません。新しい改行コードを作るとすぐに、それをエスケープするか新しい行に+をつける必要がありますが、とにかくその部分をスキップして出力すれば

とにかく –

+0

あなたは@ifが動作しないことを意味します.. ?? –

+0

はい、 '@ if'は動作しません。コードをテストすると、' @ if'のように

が出力されます。 –