TypeError:this。$ refs.datasource.fetch不是一个函数

时间:2018-12-18 04:27:38

标签: javascript vue.js kendo-ui kendo-ui-vue

我试图在用fetch创建的数据源上调用a vue wrapper方法。

错误为 [Vue警告]:挂接的钩子中出现错误:“ TypeError:this。$ refs.datasource.fetch不是函数” 所以我的问题是如何从$ refs对象。

我进行了here的闪电战

<body>
    <div id="vueapp" class="vue-app">
        <kendo-datasource ref="datasource" :data="dataSourceArray">
        </kendo-datasource>
    </div>
</body>

new Vue({
    el: '#vueapp',
    data: function() {
        return {
            dataSourceArray: [
                { text: 'Albania', value: '1' },
                { text: 'Andorra', value: '2' },
                { text: 'Armenia', value: '3' },
                { text: 'Austria', value: '4' },
                { text: 'Azerbaijan', value: '5' },
                { text: 'Belarus', value: '6' },
                { text: 'Belgium', value: '7' }
            ]
        }
    },
    mounted: function () {
      this.$refs.datasource.fetch()//<== error here
    }
})

1 个答案:

答案 0 :(得分:1)

您获得的ref是整个<kendo-datasource>组件,它没有直接使用fetch()方法。我相信您要尝试的是在组件中获取kendoDataSource并对其调用fetch方法,该方法为:

this.$refs.remoteDatasource.kendoDataSource.fetch();

修改示例以查看实际操作:

    <kendo-datasource 
        ref="datasource" 
        :data="dataSourceArray" 
        :type="'odata'"
        :transport-read-url="'https://demos.telerik.com/kendo-ui/service/Northwind.svc/Customers'">
    </kendo-datasource>

this.$refs.remoteDatasource.kendoDataSource.fetch(function(){
    var data = this.data();
    console.log(data[0]);
    });
}