AngularJS 1.6 + ES6 - 将jquery ui-grid回调数据返回给控制器[duplicate]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AngularJS 1.6 + ES6 - 将jquery ui-grid回调数据返回给控制器[duplicate]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我在我的控制器中定义了一个jquery ui-grid组件,其简化示例如下所示:

class myController {
    constructor($scope) {        

        this.$scope = $scope; 

        this.Grid = {                               

            selectionSettings:{
                clientHandler:function(key,object,data){
                    console.log(key);
                    console.log(object);
                    console.log(data);                    
                    console.log(this);
                    return data;                        
                    //the scope of this function is different from the controller scope.                          
                    }              
           }
       }

       receiver(data){
             doSomething(data);
       }
    ...

我的想法是,当我在网格中选择一个条目时,会触发clientHandler中的函数。然后,我希望此函数将该数据传递给此类中的接收器函数。

但由于这个clientHandler函数和receiver()在不同的范围内,我无法直接使用this关键字。

stackoverflow上的其他答案建议使用$scope对象来完成相同的操作,但我无法这样做。

使clientHandler函数调用receiver()需要什么?

任何指导都受到热烈欢迎。谢谢

答案

ES6箭头函数用于提供词汇this并避免使用self = this技巧,这在ES6中通常是不必要的:

clientHandler: (key,object,data) => {
  this.receiver(data);   
}  
另一答案

感谢Adelin的单挑

这是最终的工作代码:

class dashboardController {
    constructor(dashboardService, $scope) {
        this.$scope = $scope;      

        var self = this;

        this.Grid = {

            selectionSettings:{                
               clientHandler:function(key,object,data){
                   self.receiver(data);                 
            }                
        }

        receiver(data){
             this.selected = data;
             this.$scope.$apply(); //to propagate the change to the UI, if needed
         }

   }

以上是关于AngularJS 1.6 + ES6 - 将jquery ui-grid回调数据返回给控制器[duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS 1.6 + ES6 - 将jquery ui-grid回调数据返回给控制器[duplicate]

将 AngularJs 1.5 升级到 1.6 - $compile reg 控制器实例的更改会影响哪些确切的绑定?

现在做前端开发,你们还用JQ吗?

通过数组的AngularJS 1.6返回对象数据

AngularJS 1.6 分页不显示

AngularJS 模块 + Webpack + ES6 导入 - 依赖注入和连接顺序问题