在剑道折叠中发生两次事件

时间:2016-08-22 17:06:47

标签: javascript javascript-events kendo-ui event-handling openedge

我有一个使用Progress JSDO加载数据的应用程序,并使用jsdo的foreach方法将数据附加到kendo可折叠面板中的三个不同列表,具体取决于其中一个字段的状态。出于某种原因,列表在代码中被附加两次,我无法弄清楚原因。我会欣赏另一组关于我的代码的眼睛,以帮助我深入了解这个谜团。

以下是视图的控制器(这些都包含在IIFE中,包含其他一些代码,但这是相关部分。):

app.scanBarcode = {
    viewModel: new ScanViewModel(),
    onShow: function () {
        app.JSDOSession.addCatalog(app.JSDOSettings.catalogURIs);
        app.locJSDO.fill();
        $("#list-button").unbind().click(function () {
            app.goToScanFail();
        });

        app.scanBarcode.getCurrentReport();
    },
    onHide: function () {
        var reportJSDO = app.reportJSDO,
            writeOutReport = app.scanBarcode.writeOutReport;
        reportJSDO.unsubscribe('afterFill', writeOutReport);
    },
    getCurrentReport: function () {
        var reportJSDO = app.reportJSDO,
            writeOutReport = app.scanBarcode.writeOutReport;

        //Fill the JSDO from db and call function to  display the data
        reportJSDO.subscribe('afterFill', writeOutReport);
        reportJSDO.fill();
    },
    writeOutReport: function (jsdo, success, request) {
        var date = app.getDate();
        jsdo.foreach(function (report) {
            var reportDate = report.data.STAMP_DT,
                completed = "<span class='glyphicon glyphicon-ok'></span>",
                notCompleted = "",
                span;
            if (reportDate == date) {
                if (report.data.STAMP_TM == null) {
                    span = notCompleted;
                    $("#uncompleted-list").append(
                        "<li class='list-group-item'>" +
                        span + " " +
                        report.data.LOCATION_ID +
                        ' ' +
                        report.data.LOCATION_NAME +
                        "</li>"
                    );
                } else {
                    span = completed;
                    $("#completed-list").append(
                        "<li class='list-group-item'>" +
                        span + " " +
                        report.data.LOCATION_ID +
                        ' ' +
                        report.data.LOCATION_NAME +
                        "</li>"
                    );
                }

                $("#all-list").append(
                    "<li class='list-group-item'>" +
                    span + " " +
                    report.data.LOCATION_ID +
                    ' ' +
                    report.data.LOCATION_NAME +
                    "</li>"
                );
            }
        });
    }
}

这是我的观点的HTML:

<div data-role="view" data-title="Scan Location" data-reload="true" data-layout="views-layout" data-model="app.scanBarcode.viewModel" data-show="app.scanBarcode.onShow" data-hide="app.scanBarcode.onHide">
<div class="col-xs-12 col-md-6 col-md-offset-3">
    <h3 class="hassubtitle">Begin Scan:</h3>
    <button class="btn btn-xlg btn-primary btn-block" data-bind="click: scan">Scan</button>
    <button id="list-button" class="btn btn-lg btn-default btn-block">Skip</button>
</div>

<div class="col-xs-12 col-md-6 col-md-offset-3">
    <div data-role="collapsible" id="completed-collapsible">
        <h2>
            Completed
        </h2>
        <div data-role="scroller" id="completed-list"></div>
    </div>
    <div data-role="collapsible" id="uncompleted-collapsible">
        <h2>
            Uncompleted
        </h2>
        <div data-role="scroller" id="uncompleted-list"></div>
    </div>
    <div data-role="collapsible" id="all-collapsible">
        <h2>
            All
        </h2>
        <div data-role="scroller" id="all-list"></div>
    </div>
</div>

提前感谢您的帮助。我是我工作中唯一的网络开发人员,我没有人在这里问,所以我真的很感谢你们!

0 个答案:

没有答案