Angular Gridster存储在DB中的位置

时间:2016-05-07 11:06:21

标签: angularjs database gridster

我正在构建一个定制的Angular Gridster仪表板。在加载页面时,我调用了一个从数据库加载Gridster Widgets的位置,大小和内容的函数

    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,
                }
            )           
        });
    };

这很好用,小部件就像我在重新加载页面之前离开它们一样,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看起来像这样:
 li gridster-item =“widget”ng-repeat =“dashboard.widgets中的小部件”

1 个答案:

答案 0 :(得分:2)

$http.post('ServerController.php',data,config) 这会做你的工作。 注意:$ element是一个对象,它有6eX,sizeY,col,行,用于存储当前位置(col,row)和size(sizeX,sizeY)