У меня есть следующие конечные точки:
Route::get('/tasks', function(){
return Task::latest()->pluck('body');
});
Route::get('/projects/{project}', function(Project $project){
$project->load('tasks');
return view('projects.show', compact('project'));
});
Route::get('/api/projects/{project}', function(Project $project){
return $project->tasks->pluck('body');
});
Route::post('/api/projects/{project}/tasks', function(Project $project){
$task = $project->tasks()->create(request(['body']));
TaskCreated::dispatch($task);
return $task;
});
В моем представлении project.show я вызываю компонент.
У меня есть два отдельных браузера, открытых с вошедшими пользователями.
Я хочу сохранить задачу для конкретного проекта, как только я нажму клавишу Tab, поэтому шаблон vue будет выглядеть так:
<ul>
<li v-for="task in tasks" v-text="task"></li>
</ul>
<input type="text" v-model="newTask" @blur="addTask">
Мой скрипт выглядит так:
export default {
data(){
return {
tasks: [],
newTask: ''
}
},
created() {
axios.get('/tasks').then(response => (this.tasks = response.data));
window.Echo.private('tasks. ' + this.project.id).listen('TaskCreated', e =>{
this.tasks.push(e.task.body);
});
},
methods: {
addTask(){
axios.post('/api/projects/${this.project.id}/tasks', {body: this.newTask})
.then(response => response.data)
.then(this.addTask);
},
show(){
tasks.push(this.newTask);
this.newTask = '';
}
}
}
Когда я ввожу задачу в chrome, я хочу немедленно просмотреть ее в другом браузере.
В тот момент, когда я вхожу в задачу и нажимаю клавишу Tab, ничего не происходит.
Как я могу это исправить в моем шаблоне представления?