48 lines
1.6 KiB
JavaScript
48 lines
1.6 KiB
JavaScript
angular.module("demo").controller("AdvancedDemoController", function($scope) {
|
|
|
|
$scope.dragoverCallback = function(event, index, external, type) {
|
|
$scope.logListEvent('dragged over', event, index, external, type);
|
|
// Disallow dropping in the third row. Could also be done with dnd-disable-if.
|
|
return index < 10;
|
|
};
|
|
|
|
$scope.dropCallback = function(event, index, item, external, type, allowedType) {
|
|
$scope.logListEvent('dropped at', event, index, external, type);
|
|
if (external) {
|
|
if (allowedType === 'itemType' && !item.label) return false;
|
|
if (allowedType === 'containerType' && !angular.isArray(item)) return false;
|
|
}
|
|
return item;
|
|
};
|
|
|
|
$scope.logEvent = function(message, event) {
|
|
console.log(message, '(triggered by the following', event.type, 'event)');
|
|
console.log(event);
|
|
};
|
|
|
|
$scope.logListEvent = function(action, event, index, external, type) {
|
|
var message = external ? 'External ' : '';
|
|
message += type + ' element is ' + action + ' position ' + index;
|
|
$scope.logEvent(message, event);
|
|
};
|
|
|
|
$scope.model = [];
|
|
|
|
// Initialize model
|
|
var id = 10;
|
|
for (var i = 0; i < 3; ++i) {
|
|
$scope.model.push([]);
|
|
for (var j = 0; j < 2; ++j) {
|
|
$scope.model[i].push([]);
|
|
for (var k = 0; k < 7; ++k) {
|
|
$scope.model[i][j].push({label: 'Item ' + id++});
|
|
}
|
|
}
|
|
}
|
|
|
|
$scope.$watch('model', function(model) {
|
|
$scope.modelAsJson = angular.toJson(model, true);
|
|
}, true);
|
|
|
|
});
|