Laravel:在刀片@if

时间:2018-06-28 08:14:58

标签: javascript php laravel if-statement laravel-blade

我在想。无法将Javascript放入刀片@@正确吗?是否在视图中不建议使用@@如果使用某种形式的php但使用php代码呢?我该怎么办?这就是我要实现的逻辑。基本上,有哪些其他方法可以实现我要完成的任务?满足三个条件时,我试图显示按钮。

@if(isToday($one_parking_info->booking_data->m_bkl_end_date) && isBeforeElevenPM() && notEndInT($one_parking_info->booking_data->m_plots_address_city))
    <button type="button" class="btn btn-primary btn-sm" onClick="cancelBooking('{{ $one_parking_info->booking_data->m_bkl_gov_id }}')">取消</button>
@endif

3 个答案:

答案 0 :(得分:1)

刀片是php的一种形式,因此所有工作都在服务器上完成。因此,您无法在@if(isToday($one_parking_info->booking_data->m_bkl_end_date) && isBeforeElevenPM() && notEndInT($one_parking_info->booking_data->m_plots_address_city)) @include('script.js') <button type="button" class="btn btn-primary btn-sm" data-id="{{ $one_parking_info->booking_data->m_bkl_gov_id }}">取消</button> @endif <script> $('body').on('click','.btn-sm',function(){ var id = $(this).attr('data-id'); // logic of cancelBooking // }) </script> 表达式内调用javascript函数。相反,您可以在控制器中运行函数并返回一个值,说明是否应包含按钮,或者如果您不在乎用户是否可以找到并显示按钮,则可以使用JavaScript来显示或隐藏按钮如果他们想要的话。

类似于控制器@if和视图return view('your view')->with(['showButton' => $shouldShow)以及其余代码的情况

答案 1 :(得分:0)

您的js必须在公共场所或儿童中,并且应该是这样的:

@if(isToday($one_parking_info->booking_data->m_bkl_end_date) && isBeforeElevenPM() && notEndInT($one_parking_info->booking_data->m_plots_address_city))
    @include('script.js')
    <button type="button" class="btn btn-primary btn-sm" onClick="cancelBooking('{{ $one_parking_info->booking_data->m_bkl_gov_id }}')">取消</button>
@endif

另一个选项可以是<script src="{{ asset('js/scripts.js') }}"></script>而不是@include指令

答案 2 :(得分:0)

我猜:

private void setCurrentItem(int position) {
    viewPager.setCurrentItem(position, false);
    displayMetaInfo(selectedPosition);
}

//  page change listener
ViewPager.OnPageChangeListener viewPagerPageChangeListener = new  
ViewPager.OnPageChangeListener() {

    @Override
    public void onPageSelected(int position) {
        displayMetaInfo(position);

        // I need this position in my OnClickListener
    }
}