Angular 5: отображение обновленных данных не автоматически - PullRequest
0 голосов
/ 27 апреля 2018

Мои данные не отображаются автоматически после нажатия кнопки. Мне нужно обновить страницу, чтобы показать обновленные данные, как сделать так, чтобы они автоматически обновлялись после нажатия кнопки?

enter image description here

Машинописный файл 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());}

Экспресс конечные точки для обновления данных:

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);
                });
            });
        }
    });
});

1 Ответ

0 голосов
/ 27 апреля 2018

Вам необходимо получить данные с сервера после успешного обновления информации о пользователе, как это: -

return this.http.put('http://192.168.100.3:3000/users/update', user, {headers: headers})
.map(res => {
    /* Write call to get updated information from the server and Update your view accordinly */
    return res.json();
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...