【问题标题】:Reset modal that is dynamically created动态创建的重置模式
【发布时间】:2015-12-30 09:59:52
【问题描述】:

我第一次使用 Angular JS 进行开发,我创建了以下引导模式,其中有 3 个动态创建的 div。每次创建一个 div,它们是互斥的。代码如下:

<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <h4>User Menu</h4>
        </div>
        <div class="row">
            <!-- USER MENU 1 -->
            <div ng-if="ctrl.state.current.name==='userMenu1'" ng-class="ctrl.fileOpen ? 'col-xs-8' : 'col-xs-12'" class="tablecontainer">
            <table class="table table-striped table-hover table-condensed">
                <colgroup>
                    <col class="col-md-1">
                    <col class="col-md-2">
                    <col class="col-md-2">
                    <col class="col-md-3">
                    <col class="col-md-2">
                    <col class="col-md-2">
                </colgroup>
                <thead>
                    <tr>
                        <th>&nbsp;</th>
                        <th>Firstname</th>
                        <th>Lastname</th>
                        <th>Address</th>
                        <th>Attachment</th>
                        <th>Group</th>
                    </tr>
                </thead>
                <tbody>
                    <tr ng-repeat="user in users">
                        <td>
                            <input type="checkbox" value="" ng-model="ctrl.checked[$index]" ng-disabled="ctrl.fileupload!==undefined" ng-change="ctrl.checkBox($index)" />
                            </td>
                            <td>{{user.firstname}}</td>
                            <td>
                                <select class="form-control" ng-model="user.selectedAddress" ng-change="ctrl.checked[$index] = user.selectedAddress.destAddress" ng-options="o as o.destName for o in user.addresses"></select>
                            </td>
                        <td>{{user.selectedAddress.destAddress}}</td>
                        <td>{{ctrl.getFile($index)}}</td>
                        <td>{{ctrl.getGroup($index)}}</td>
                    </tr>
                </tbody>
            </table>
        </div>

        <!-- USER MENU 2 DIV -->
        [...]

        <!-- USER MENU 3 DIV -->
        [...]

        <!-- BUTTONS PANEL DIV --->
        [...]

            <div class="modal-footer">
                <button type="button" class="btn btn-default btn-flat" data-dismiss="modal">Close</button>
            </div>
    </div>
</div>

在每个 div 中,用户可以在某些输入中填充文本,甚至可以通过按下某些按钮来添加新的输入字段(我在代码中省略了它们)。 我希望每次用户关闭模态并再次打开它时,模态都会恢复到初始 div(menu1、menu2 或 menu3,取决于用户打开模态的位置)。

我该怎么做?

我尝试了几种方法(例如 thisthis),但没有一种方法适合我的情况。

【问题讨论】:

    标签: jquery angularjs twitter-bootstrap modal-dialog


    【解决方案1】:

    我更改了您的代码。你可以看到我的代码。

    http://jsfiddle.net/deadmask92/8XCps/344/

    我补充说:

    function reset(){
        $('#myModal').modal('hide').remove();
        var myClone = myBackup.clone();
        $('body').append(myClone);
    }
    
    $('body').on('click','#myClose',reset);
    
    $('body').on('click','#CloseIcone',reset);
    

    我改变了:

    $('body').on('click','#myReset',reset);
    

    【讨论】:

    • 我测试过了!如果必须在用户关闭时重新设置模态框,那是正确的。但我不明白你的问题。
    • 代码中的“关闭”和“重置”按钮有什么区别?
    • 关闭和重置在我的代码中是相等的。我不明白你的问题。你能描述一下关闭动作和重置动作吗?
    • 我看到它们是相等的,那么为什么要添加 2 个按钮呢?无论如何这不是问题,所以你的代码是这样的:jsfiddle.net/66ce0dja。无论如何它对我不起作用,可能是因为我的模态 div 结构不同(对话框 - 内容 - 标题)。您是否尝试将您的代码应用到我的 HTML 中?感谢您的帮助!
    • 它并没有消失,因为我的模态 ID 有误。现在它可以工作了,但它删除了模式中的每个元素。可能是什么原因?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2020-05-22
    相关资源
    最近更新 更多