确认Dialog在回调中传递动作

时间:2017-03-11 14:48:46

标签: php ajax laravel twitter-bootstrap-3

对于我在bootstrap 3上的laravel应用程序我正在尝试使用以下代码执行基本的应用程序范围确认对话框:

Display.update();

模态:

<button type="button" class="btn btn-default" 
     data-toggle="modal" 
     data-target="#confirmActionModal" 
     data-backdrop="false"
     data-title="Cancel Subscription" 
     data-body="Please confirm the cancellation of your subscription."
     data-modal-primary-button-text="Cancel Subscription"
>
   Cancel Subscription
</button>

JS:

<div class="modal fade" id="confirmActionModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="modalTitle"> Default Title </h4>
            </div>
            <div class="modal-body" id="modalBody">
                Default Body
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" class="btn btn-primary">Default Button Text</button>
            </div>
        </div>
    </div>
</div>

由于确认对话框在整个应用程序中是通用的,我希望能够传入回调ajax函数名称。因此,例如当有人点击主要操作按钮(在这种情况下取​​消订阅)时,我也想传递ajax回调,因为我传递了标题和正文,用于像cancelSubscription()这样的javascript函数,它基本上可以执行操作。任何提示或我的方法都有缺陷?

1 个答案:

答案 0 :(得分:0)

您可以通过控制器将变量传递给JQuery函数或html标记。例如:

<强> PageController.php

public function page()
{
    return view('template', [
        'ajax-function' => "myAjaxFunctionName"
    ]);
}

<强> template.blade.php

<button type="button" class="btn btn-default" 
     data-toggle="modal" 
     data-target="#confirmActionModal" 
     data-backdrop="false"
     data-title="Cancel Subscription" 
     data-body="Please confirm the cancellation of your subscription."
     data-modal-primary-button-text="Cancel Subscription"
     data-ajax-function="{!! $ajax-function !!}"
>
   Cancel Subscription
</button>

因此,您可以使用控制器来确定您希望使用的每个功能的名称。