admin管理员组文章数量:1429883
I have a following ponent in which I have a method which updates employee. I want to show the error message in view as soon as erroMessage variable is assigned/changed in "error" callback of ajax call.
var EmployeeEdit = Vue.extend({
template: '#employee-edit',
data: function () {
return {employee: findEmployee(this.$route.params.employee_id),errorMessage:'as'};
},
methods: {
updateEmployee: function () {
var employee = this.employee;
$.ajax({
url: "/vue/employee/update",
type: "POST",
data:{
id: employee.id,
name: employee.name,
profile: employee.profile,
age: employee.age
},
success: function (data) {
router.push('/');
},
error:function (xhr, status, error) {
console.log("message....... " + xhr.responseText);
this.errorMessage = xhr.responseText;
}
});
}
View:
<template id="employee-edit">
<section>
<header class="page-header">
<div class="row">
<div class="col-sm-4">
<h1>Edit Employee</h1>
</div>
</div>
</header>
<p >{{ errorMessage }}</p>
<form v-on:submit="updateEmployee">
<div class="form-group">
<label for="edit-name">Name</label>
<input class="form-control" id="edit-name" v-model="employee.name" required/>
</div>
<div class="form-group">
<label for="edit-description">Profile</label>
<textarea class="form-control" id="edit-description" rows="3" v-model="employee.profile"></textarea>
</div>
<div class="form-group">
<label for="edit-price">Age</label>
<input type="number" class="form-control" id="edit-price" v-model="employee.age"/>
</div>
<button type="submit" class="btn btn-primary">Save</button>
<router-link to="/" class="btn btn-default">Cancel</router-link>
</form>
</section>
</template>
I have a following ponent in which I have a method which updates employee. I want to show the error message in view as soon as erroMessage variable is assigned/changed in "error" callback of ajax call.
var EmployeeEdit = Vue.extend({
template: '#employee-edit',
data: function () {
return {employee: findEmployee(this.$route.params.employee_id),errorMessage:'as'};
},
methods: {
updateEmployee: function () {
var employee = this.employee;
$.ajax({
url: "/vue/employee/update",
type: "POST",
data:{
id: employee.id,
name: employee.name,
profile: employee.profile,
age: employee.age
},
success: function (data) {
router.push('/');
},
error:function (xhr, status, error) {
console.log("message....... " + xhr.responseText);
this.errorMessage = xhr.responseText;
}
});
}
View:
<template id="employee-edit">
<section>
<header class="page-header">
<div class="row">
<div class="col-sm-4">
<h1>Edit Employee</h1>
</div>
</div>
</header>
<p >{{ errorMessage }}</p>
<form v-on:submit="updateEmployee">
<div class="form-group">
<label for="edit-name">Name</label>
<input class="form-control" id="edit-name" v-model="employee.name" required/>
</div>
<div class="form-group">
<label for="edit-description">Profile</label>
<textarea class="form-control" id="edit-description" rows="3" v-model="employee.profile"></textarea>
</div>
<div class="form-group">
<label for="edit-price">Age</label>
<input type="number" class="form-control" id="edit-price" v-model="employee.age"/>
</div>
<button type="submit" class="btn btn-primary">Save</button>
<router-link to="/" class="btn btn-default">Cancel</router-link>
</form>
</section>
</template>
Share
Improve this question
edited Apr 20, 2017 at 10:16
Vivek Sadh
asked Apr 20, 2017 at 10:07
Vivek SadhVivek Sadh
4,2683 gold badges35 silver badges54 bronze badges
2
- Where is your view code? – rmondesilva Commented Apr 20, 2017 at 10:15
- Added view code – Vivek Sadh Commented Apr 20, 2017 at 10:17
1 Answer
Reset to default 4Because you lost the this
reference in error:function(){}
You can use arrow functions:
error: (xhr, status, error) => {
console.log("message....... " + xhr.responseText);
this.errorMessage = xhr.responseText;
}
or if you don't want to use ES6, you can specify the context
option in $.ajax()
$.ajax({
context: this,
...
or simply keep a this
reference
updateEmployee: function () {
var _this = this;
...
error: function (xhr, status, error) {
console.log("message....... " + xhr.responseText);
_this.errorMessage = xhr.responseText;
}
本文标签: javascriptShow error message in Vue jsStack Overflow
版权声明:本文标题:javascript - Show error message in Vue js - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745467379a2659590.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论