2014-10-09 112 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設置的時間?好像不是在構造函數完成之前。我在哪裏必須打電話給我的方法?

現在我有問題,我必須在SubController類的getData函數中做出異步請求。這個http請求需要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 
    } 
} 
相關問題