У меня есть домашний компонент:
@Component({
selector: 'gridster-general',
templateUrl: './home.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None
})
это класс экспорта, он содержит инициализацию панели инструментов гридстера:
export class HomeComponent implements OnInit {
options: GridsterConfig;
dashboard: Array<GridsterItem>;
widget:any;
constructor(private dataService:DataService )
{ }
ngOnInit() {
this.options = {
gridType: GridType.ScrollVertical,
compactType: CompactType.None,
margin:10,
outerMargin: true,
outerMarginTop: null,
outerMarginRight: null,
outerMarginBottom: null,
outerMarginLeft: null,
mobileBreakpoint: 640,
minCols: 1,
maxCols: 10,
minRows: 1,
maxRows: 100,
maxItemCols: 100,
minItemCols: 1,
maxItemRows: 100,
minItemRows: 1,
maxItemArea: 2500,
minItemArea: 1,
defaultItemCols: 1,
defaultItemRows: 1,
fixedColWidth: 105,
fixedRowHeight: 105,
keepFixedHeightInMobile: false,
keepFixedWidthInMobile: false,
scrollSensitivity: 10,
scrollSpeed: 20,
enableEmptyCellClick: false,
enableEmptyCellContextMenu: false,
enableEmptyCellDrop: false,
enableEmptyCellDrag: false,
emptyCellDragMaxCols: 50,
emptyCellDragMaxRows: 50,
ignoreMarginInRow: false,
draggable: {
enabled: true,
stop:
function (event, $element, widget) {
this.widget = {
x:$element.$item.x,
y:$element.$item.y
}
HomeComponent.prototype.dataService.UpdateXY(this.widget);
}
},...
Я использовал HomeComponent.prototype
, потому что я не смог получить доступ к переменной dataService с this.dataService
Я пытаюсь получить положение виджета в угловых 5 гридстерах и сохранить его в своей базе данных.
Служба данных - это служба, которая взаимодействует с моей базой данных, а UpdateXY()
- это функция, которая использует метод post для сохранения информации в базе данных.
Я получаю эту ошибку:
ERROR TypeError: Cannot read property 'UpdateXY' of undefined
at Object.stop (home.component.ts:106)
at GridsterDraggable.dragStop (gridsterDraggable.service.ts:158)
at HTMLDocument.eval (platform-browser.js:2628)
at ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:4751)
at ZoneDelegate.invokeTask (zone.js:420)
at Zone.runTask (zone.js:188)
at ZoneTask.invokeTask [as invoke] (zone.js:496)
at invokeTask (zone.js:1540)
at HTMLDocument.globalZoneAwareCallback (zone.js:1566)
Может кто-нибудь, пожалуйста, помогите мне решить эту проблему