【问题标题】:propagate angular object function call to an internal object将角度对象函数调用传播到内部对象
【发布时间】:2016-01-27 22:36:00
【问题描述】:

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

这就是我现在拥有的

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 angularjs call


    【解决方案1】:

    开箱即用的传播是我在 JavaScript 中非常想念的东西,但你可以手动完成

        function InnerClass() {
             this.method = function() {
    
             }
        }
    
    function OuterClass() {
        var decoratedClass = new InnerClass()
    
        this.method = decoratedClass.method.bind(decoratedClass)
    }
    
    
    var instance = new OuterClass
    instance.method()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 2010-10-27
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      相关资源
      最近更新 更多