问题是我无法访问set
方法:
this.$get = function( $http ) {
return
{
set: function(UserData)
{
this.user = UserData ;
localStorage.setItem('user', JSON.stringify( UserData ) );
},
get: function()
{
return this.user;
},
send: function(data)
{
$http.post(BASE_URL + 'user/login', data)
.then( function( res ){
// Error !
this.set(res.data);
console.log(this); // return window object
// Here i want to access to 'this.set()'
// but i get error: 'ypeError: this.set is not a function'
});
}
}
}
我搜索了访问this.set()
谢谢!
答案 0 :(得分:3)
将this
的副本保存在回调之外并使用它。
this.$get = function ($http) {
return {
set: function (UserData) {
this.user = UserData;
localStorage.setItem('user', JSON.stringify(UserData));
},
get: function () {
return this.user;
},
send: function (data) {
var _this = this;
var url = BASE_URL + 'user/login';
$http.post(url, data).then(function (res) {
_this.set(res.data);
});
}
};
}
使用ES6:
this.$get = function ($http) {
return {
set(UserData) {
this.user = UserData;
localStorage.setItem('user', JSON.stringify(UserData));
},
get() {
return this.user;
},
send(data) {
let url = BASE_URL + 'user/login';
$http.post(url, data).then(res => {
this.set(res.data);
});
}
};
}