Не удалось вызвать ui.getTaskbar () в handleLogin () внутри вычисления ---- действия - PullRequest
0 голосов
/ 19 июня 2020

Этот код ниже, я пытаюсь создать сеанс для пользователя, используя ajax, следовательно, возврат isset ($ _ session [...]), который должен быть либо истинным, либо ложным.

этот возврат должен передается в 1. calculate.status

обратный вызов в handleLogin ()

этот статус (true) будет передан в ui.isLoggedin для обновления getTaskbar

, что позволит пользователю использовать возможности на веб-сайте.

, но это не работает. Я перепробовал так много способов, которые, возможно, не смогу здесь описать ..

пожалуйста, любая идея будет оценена по достоинству. Я все еще новичок. Спасибо.

Код здесь ниже.

/ * * @Object LoginManager () --- Управляет взаимодействием кнопок и поведением * например, вход в систему, регистрация, домой, исследование, входящие, профиль и т. Д. * /

function User(){
this.isLoggedin = false;
}

/*
* @object UI() --- Handles User Interface and Interactions 
* e.g login, register, home, explore, inbox, profile etc
*
* Descendats :-
* 1. UI.getTaskbar()
  2. UI.eventManager()
    i. UI.eventManager.handleLogin()
    ii. UI.eventManager.handleRegister()
*/



function UI(loggedin = null){
this.user = new User;
this.isLoggedin = loggedin ?? this.user.isLoggedin;

Object.defineProperty(this,'loggedInStatus',{
set : function(value){
 loggedInStatus = value;
},
get : function(){
  return loggedInStatus;
}
});

}

UI.prototype.getTaskbar = function(){

if(this.isLoggedin && this.isLoggedin === true){
this.taskbarButton_accessed.show();
this.taskbarButton_access.hide();
}else{
this.taskbarButton_accessed.hide();
this.taskbarButton_access.show();
}

}


handleLogin(){
 let self = this;
 let ui = new UI;
 let calculate =  {
   status: false,
   message :"Zzzz",
   decideUI : function(){
     ui.confirm({
        arg:calculate.message,
        text:'Alright',
        action:function(){
           return true;
        }
     });
    },
   logUserIn : function(callback){
    $.post(self.url,self.form.serialize(),function(data){
      calculate.status = data.status;
      calculate.message = data.message;
      calculate.decideUI();
      if(typeof callback === 'function') callback(data.status);
$('#access_login').removeAttr('disabled');
    },'json');
   }
 };  
 return calculate.logUserIn(function(status){
  ui.isLoggedin = status //would return true
  ui.getTaskbar(); //Hence update taskbar to use facility

//The problem is..ui.getTaskbar() 
//does not work. Please trace up for better //understanding
});
}

...