bootstrap-table column-event 添加一个事件对象

bootstrap-table column-event adding a event object

目前我正在使用 window.operateEvents 作为我的 bootstrap-table columns 之一的 data-events 事情是我想把它分成多个文件以获得权限。然后只加载需要加载的内容。

这现在有效,但我正在组合两个 objects propertiesproperty 通过 property。这是 fastest/best 方式吗?

还有没有一种方法可以在不将 bootstrap-table 识别的两个 objects 结合起来的情况下使这项工作更好?

/**
 * Overwrites obj1's values with obj2's and adds obj2's if non existent in obj1
 * @param obj1
 * @param obj2
 * @returns newObj a new object based on obj1 and obj2
 */
function merge_options(obj1,obj2){
    // If object1 doesn't exist just give back obj2
    if(typeof(obj1) === "undefined" ){
        return obj2;
    }

    var newObj = {};
    for (var attrname in obj1) { newObj [attrname] = obj1[attrname]; }
    for (var attrname in obj2) { newObj [attrname] = obj2[attrname]; }
    return newObj;
}


    /**
     * @brief operator events for actions on the rows
     * @type void
     */
    window.operateEvents = merge_options(window.operateEvents,{
        'click .edit': function(e,value,row,index){
            requestConfirm(e,value,row,"update", 
                function(){
                    $('#table').bootstrapTable('refresh', "{silent: true}");
                }
            );
            e.stopPropagation();
        }                          
    });

    /** Add delete functionality */
    window.operateEvents = merge_options(window.operateEvents, {
         'click .remove': function(e,value,row,index){
            requestConfirm(e,value,row,"delete", 
                function(){
                        $('#table').bootstrapTable('refresh', "{silent: true}");
                }
            );
            e.stopPropagation();
        }       
    });

执行此操作的最佳方法是通过 属性 名称开始将每个操作添加到您的 operateEvents 对象。

例如:

window.operateEvents['click .edit'] = (function() {
//some edit stuff
});

window.operateEvents['click .remove'] = (function() {
//remove some stuff
});

希望对您有所帮助。