2016-05-07 25 views
1

我正在构建自定义的Angular Gridster仪表板。在加载页面,我称之为加载从数据库在Grid DB中的角度Gridster商店位置

function getDashboard() { 
     $scope.dashboard.widgets = []; 
     angular.forEach($scope.filtered_activities, function(object) { 
      $scope.dashboard.widgets.push(
       { 
        pk: object.pk, 
        process: object.process, 
        row: object.row, 
        col: object.col,      
        sizeY: object.sizeY, 
        sizeX: object.sizeX, 
       } 
      )   
     }); 
    }; 

这正常的位置,大小和Gridster的Widgets内容的功能,以及小部件就像我离开他们,我重新加载页面之前和putActivies(小部件)将它们存储在数据库中。

但是,当我想将它们拖到不同的位置时,我只获取存储在数据库中的位置,而不是当前位置。

$scope.gridsterOptions = { 
     margins: [20, 20], 
     outerMargin: false, 
     pushing: true, 
     columns: 6, 
     rowHeight: 100, 
     draggable: { 
      handle: 'h2', 
      enabled: true, 
      stop: function(event, $element, widget) { 
       console.log(widget.col); 
       putActivities(widget); 
      } 
     }, 
     resizable: { 
     enabled: false, 
    } 
    }; 

所以console.log(widget.col)只给我数据库的位置,而不是当前的。 当我从getDashboard()中删除该行和col属性时,它会起作用,但当然没有正确的位置。

是否有另一种访问widgets.col(和row)属性的方法?

我的HTML看起来像这样:
李gridster项= “小部件” NG重复= “小部件dashboard.widgets”

回答

2

draggable: { handle: 'h2', enabled: true, stop: function(event, $element, widget) { console.log($element) putActivities($element); } }, 这将做你的工作。 注意:$元素是一个对象,它具有存储当前位置(col,row)和大小(sizeX,sizeY)的sixeX,sizeY,col,row行