传播角度对象函数调用内部对象

时间:2016-01-27 22:36:00

标签: javascript angularjs call

是否有一些优雅的方法可以将角度对象函数调用传播到同一个函数但是在内部对象上?

这就是我现在所拥有的

var grid = $('#' + config.selector).w2grid(gridConfig);

angular.merge(this, {
   addData: addData,
   lock: lock,
   unlock: unlock,
   reload: reload,
   clear: clear,
   removeRow: removeRow,
   getRecord: getRecord,
   setRecord: setRecord,
   refreshRow: refreshRow,
   destroy: destroy,
   resize: resize,
   setData: setData,
   selectNone: selectNone,
   getSelection: getSelection
});


....

    function addData(data) {
        grid.add(data);
    }

    function lock(message) {
        grid.lock(message || '', true);
    }

    function unlock() {
        grid.unlock();
    }

    function reload() {
        grid.reload();
    }

    function clear() {
        grid.clear();
    }

我想只覆盖网格函数

var grid = $('#' + config.selector).w2grid(gridConfig);


    ....

        function addData(data) {
            alert('add data overide');
        }

    ....

因此,当调用angularObject.reload()函数时,它将调用grid.reload(),如果调用angularObject.addData(),它将在角对象中调用覆盖函数addData()

1 个答案:

答案 0 :(得分:0)

开箱即用的传播是我想念JavaScript的一件事,但你可以手工完成

    function InnerClass() {
         this.method = function() {

         }
    }

function OuterClass() {
    var decoratedClass = new InnerClass()

    this.method = decoratedClass.method.bind(decoratedClass)
}


var instance = new OuterClass
instance.method()