【发布时间】:2020-09-10 10:38:01
【问题描述】:
我正在构建一个 Laravel 应用程序并尝试使用 vue.js(没有取得多大成功!)。我不了解组件使用 ajax 数据的方式。我发现的几乎所有显示此功能的示例都在应用程序级别定义组件的数据,而不是组件级别。
我试图在组件本身中动态定义我的数据,并且总是得到Property or method tasks is not defined on the instance but referenced during render 的错误。这是组件,它只是调用端点来拉取基本的“待办事项”任务:
Vue.component('tasks', {
data: function() {
return {
tasks: []
}
},
mounted() {
this.getTasks();
},
methods: {
getTasks() {
axios.get('/tasks').then(function (response) {
this.tasks = response.data;
console.dir(this.tasks);
})
.catch(function (error) {
console.log(error);
});
}
},
template: `
<div class="card">
<div class="card-title">{{ task.name }}</div>
<div class="card-body">
<div class="service-desc">{{ task.description }}</div>
<div class="task-notes"><input class="form-control" v-model="task.notes" placeholder="Notes"></div>
<div class="task-active"><input type="checkbox" checked data-toggle="toggle" data-size="sm" v-model="task.active" v-on:click="$emit('disable')"></div>
</div>
</div>
`
});
从刀片模板中调用组件:
<tasks v-for="task in tasks" :key="task.id"></tasks>
tasks 是在data 函数中声明的,所以我不知道为什么 vue 告诉我它没有定义?
【问题讨论】:
标签: php laravel vue.js vuejs2 vue-component