Подключаем 2 контроллера и имеем доступ к первым свойствам контроллеров во втором контроллере

У меня проблема с угловым дротиком. 1 HTML-файл для запуска областей и 2 класса контроллера index.html

... {{subCtrl.user.name}}...

первый контроллер

@Controller(
  selector: '[mainController]',
  publishAs: 'mainCtrl'
)
class MainController{
  User user = new User('testuser');
  MainController();
}

второй контроллер

@Controller(
  selector: '[subController]',
  publishAs: 'subCtrl'
)
class SubController{

  @NgOneWay('user')
  User user;

  // constructor
  SubController(){
    getData();
  }

  void getData(){
    if(user != null){
      // following code is not exececutet, because user is null
      httpRequst(...);
    }
  }
}

когда пользователь настроен на @NgOneWay? кажется, не до того, как конструктор закончен. где я должен вызвать мой метод?

Теперь у меня есть проблема, я должен сделать асинхронный запрос в функции getData в классе SubController. этот http-запрос нуждается в свойствах user.name для построения домена, но пользователь не активен, когда я запускаю его в конструкторе. Я не могу установить аутентификацию для второго контроллера. должен быть другой вариант, чтобы заставить это работать.

Я перепробовал несколько вещей с будущим Дартса, но не получил работу.

1 ответ

Раньше это было AttachAware интерфейс.

class SubController implements AttachAware {
  attach() {
    getData();
    // or new Future(() => getData()); // if the line above still doesn't work - to give Angular one additional cycle to finish
  }
}
Другие вопросы по тегам