Вызов вспомогательного метода с методом контроллера в качестве параметра - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь вызвать метод (clickRegister) из класса Helper:

  class AdminPanelHelper {
  constructor() {

  }
  static clickRegister(callback){
    var promise = new Promise(function(res,rej) {
      $('.register-link').click(function() {
        $('.admin-body').fadeOut(function() {
          callback();
          res();
        })
      });
    })
    promise.then(function() {
      $('.admin-body').fadeIn();
    })
  }
}

на моем контроллере:

class AdminPanelController {

  constructor() {
    this._loginView = new LoginView($('.admin-body'));
    this._registerView = new RegisterView($('.admin-body'));
  }

  showLogin(){
    this._loginView.update();
    var e = this;
    AdminPanelHelper.clickRegister(e._registerView.update);
  }

}

Но я получаю в консоли ошибку 'View.js: 7 Uncaught TypeError: Невозможно прочитать свойство' _element 'из неопределенного'

Я использую партнера по разработке mvc с расширенным представлением RegisterView. На самом деле не знаю, что не так, элемент был объявлен как "this._registerView = new RegisterView ($ ('. Admin-body'));"

EDIT:

Добавление класса RegisterView и класса просмотра:

class RegisterView extends View {
  constructor(element) {
    super(element);
  }

  template(){
      return `
      <div class="form-body">
      <div class="welcome">
        <h2 class="login-welcome">This is only for test, your account will be deleted after 20min</h2>
      </div>
        <form id="register" class="" action="register" method="POST">
        <input type="text" name="user" id="user" value="" placeholder="USER">
          <input type="email" name="email" id="email" value="" placeholder="EMAIL">
          <input type="password" name="password" id="password" value="" placeholder="PASSWORD">
          <input type="password" name="passwordConf" id="passwordConf" value="" placeholder="CONFIRM PASSWORD">
          <input class="btn btn-primary register-user" type="submit" value="Register" id='regsubmit'>
        </form>
        <div class="register-link-body">
          <span>Back to <a class="login-link">login</a></span><br>
        </div>
        </div>
      `
  }
}

Просмотр класса:

class View {
  constructor(element) {
    this._element = element;
  }

  update(model){
    this._element.html(this.template(model));
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...