是否可以使用刀片将参数传递给tinymce.init函数?

时间:2017-01-21 16:16:30

标签: javascript php laravel tinymce blade

我想基于数据库数据将默认内容添加到tinymce编辑器中:

控制器:

@if(isset($page_content))
    @forelse ($page_content['getMediaItems'] as $index => $item)
        @include('scripts.tinymce.tinymce-multiple-init',compact('index'))
    @empty
        {{'Woops..'}}
    @endforelse
@else
    @include('scripts.tinymce.tinymce-single-init')
@endif

因此,当有多个媒体项目时,我想将默认文本添加到编辑器

现在我想要在include页面上的init函数内部进行迭代(索引):

tinymce.init({
   setup:function(ed) {
      //Stuff here
   },
   selector: '.js-editable-media',
   menubar:false,
   inline: true,
   plugins: "textcolor colorpicker",
   toolbar: [
    'undo redo forecolor'
   ],
   my_custom_variable: {!! $index !!}
});

现在{!! $ index !!}只返回0而不是迭代次数。但是当我把索引参数ouside放在函数中时,它返回正确的数字:

console.log({!! $index!!}); //showing correct iteration

tinymce.init({
  .....
  console.log({!! $index!!}); //showing only 0
});

请帮忙

1 个答案:

答案 0 :(得分:0)

$index是一个关键,这就是为什么它在第一次迭代中是0的原因。如果要传递值,则应传递$item

@include('scripts.tinymce.tinymce-multiple-init', compact('item'))

然后:

my_custom_variable: {!! $item !!}

此外,在JS中硬编码PHP是一种不好的做法。考虑其他传递数据的方法。