Webix как Vue метод вызова - PullRequest
       31

Webix как Vue метод вызова

0 голосов
/ 08 января 2020

Как я могу вызвать метод storeNewOrder в случае onAfterDrop из части Webix?

this.$emit.storeNewOrder() и storeNewOrder() не работает

   export default {
        template:"<div></div>",

        props:
            ['url'],

        computed: mapGetters({

        }),

        mounted:function(){
            this.webixId = webix.ui({
                container: this.$el,
                $scope: this,
                view:"treetable",
                height: 600,
                id: 'project',

                headermenu: true,
                resizeColumn: true,
                select: "row",
                dragColumn:true,
                headerRowHeight:40,
                drag:true,
                columns: [
                    {id: "order_column",header:"Id",  width: 50, sort: "int"},
                    {id: "value", header:"Bezeichnung",fillspace: true, minWidth: 200,  sort: "string", template:"{common.treetable()} #value#" },
                    {id:"created_at", map:"(date)#created_at#", header:["Erstellt am", { content:"dateRangeFilter"}],  adjust: true },
                ],
                on: {
                    onSelectChange: function(){
                        store.commit('setSelectedPart', this.getItem(this.getSelectedId(true)))
                    },
                    onItemDblClick: function () {
                        store.commit('setPartView', 'detail')
                    },
                    onAfterLoad: function () {

                        if (selectedRowId) {
                            this.select(selectedRowId)
                            this.showItem(selectedRowId)
                        }
                    },
                    onAfterDrop: function(context, native_event){
                        storeNewOrder() //how to call the method storeNewOrder?
                    }

                },
                url: this.url
            })
        },

        methods: {
            storeNewOrder: function() {
                //store new order
            }
        },
        destroyed:function(){
            webix.$$(this.webixId).destructor();
        }
    }

1 Ответ

0 голосов
/ 08 января 2020

Вы должны вызвать его с помощью this.storeNewOrder(), но я подозреваю, что это может быть вне области видимости.

Итак, в верхней части функции mounted выполните:

const self = this;

this.webixId = webix.ui({
...

И затем позвоните с помощью self.storeNewOrder()

Попробуйте оба способа.

...