我想检查$ http.get()的返回值,但是我得到了未定义的值。这是我的vue js代码:
var vm = new Vue({
el: '#permissionMgt',
data: {
permissionID: []
},
methods:{
fetchPermissionDetail: function (id) {
this.$http.get('../api/getComplaintPermission/' + id, function (data) {
this.permissionID = data.permissionID; //permissionID is a data field of the database
alert(this.permissionID); //*****this alert is giving me undefined value
});
},
}
});
你能告诉我这里的问题吗?.. btw $ http.get()正确获取所有数据。
答案 0 :(得分:0)
这是一个常见的js错误。进行以下更改,它将起作用。
fetchPermissionDetail: function (id) {
var self = this; //add this line
this.$http.get('../api/getComplaintPermission/' + id, function (data) {
self.permissionID = data.permissionID; //replace "this" with "self"
});
},
}
原因是this
指向匿名函数window
内的function()
这是众所周知的js问题。如果您使用的是es2015,则可以使用箭头语法(() => { /*code*/ }
)语法正确设置this
答案 1 :(得分:0)
您需要检查从服务器返回的data
的类型。如果@ Raj的解决方案没有解决您的问题,那么返回的permissionID
中可能不会出现data
。
执行colsole.log(data)
并检查data
是object
还是array
{/ 1}}。
干杯!