2014-10-09 1 views
4

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

... {{}} 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? похоже, не до завершения конструктора. где мне позвонить?

теперь у меня есть проблема, я должен сделать запрос asynch в функции getData в классе SubController. этот HTTP-запрос требует i.e имя_файла user.name для создания домена, но пользователь неактивен, когда я запускаю его в конструкторе. я не могу установить аутентификацию для второго контроллера. должен быть другой вариант для этого.

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

ответ

4

Это был интерфейс 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 
    } 
} 
Смежные вопросы