【发布时间】:2018-10-08 05:52:15
【问题描述】:
按下按钮后我的数据没有自动显示。我需要刷新页面以显示更新的数据,如何使其在按下按钮后自动更新?
updateProfileCompany 的打字稿文件:
updateProfileCompany(){
var getUser = localStorage.getItem('user');
getUser = JSON.parse(getUser)
var id_student = getUser["id"];
var nim = getUser["nim"];
var nama = getUser["nama"];
var email = getUser["email"];
var company = this.company
let user = {
id : id_student,
nama : nama,
email : email,
nim : nim,
company : this.company
}
console.log(user.company);
this.authService.updateProfileCompany(user)
.subscribe(user => user);}
我的服务:
updateProfileCompany(user){
let headers = new Headers();
this.loadToken();
var users = localStorage.getItem(this.user);
headers.append('Authorization', this.authToken);
headers.append('Content-Type', 'application/json')
return this.http.put('http://192.168.100.3:3000/users/update', user, {headers: headers})
.map(res => res.json());}
用于更新数据的 Express Endpoints:
router.put('/update', passport.authenticate('jwt', {session:false}), (req, res, next)=>{
const user = req.body;
var id_student = user.id;
var id_company = user.company
var result = [];
User.findById(id_student, function(err, user) {
if(err) {
console.log(err);
return res.status(500).send({message: "Error"});
}
if(!user) {
return res.status(404).send({message: "User Not Found"});
}
user.company = id_company;
result.push(user);
user.save(function(err, user){
if(err) {
return res.status(500).send({message: "Cannot Update, please try again"});
console.log(err);
} else {
return res.status(200).send({message: "Update Success"});
console.log('Your data has been updated.');
}
});
if(id_company){
Company.findById(id_company, function(err, company) {
company.students.addToSet(id_student)
company.save(function(err, company){
if(err){
console.log(err);
}
console.log('Your data has been updated.');
result.push(company);
});
});
}
});
});
【问题讨论】:
-
您需要在订阅中将用户分配给类级别的用户变量。
.subscribe(user => {this.user = user}); -
@fatih ranjeet8082 说您需要更新类的“用户”属性的值,因为最后“用户”属性用于显示数据。您需要通过将值分配给 this.user 来手动完成
标签: node.js angular express mean