簡體   English   中英

將角度對象函數調用傳播到內部對象

[英]propagate angular object function call to an internal object

是否有一些優雅的方法可以將角度對象函數調用傳播到內部對象上的同一函數?

這就是我現在所擁有的

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()角對象內。

開箱即用的傳播是我從JavaScript中錯過的一件事,但是您可以手動完成

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

         }
    }

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

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


var instance = new OuterClass
instance.method()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM