2016-08-20 39 views
-1

時開始具有角2 加載我有這樣運行代碼當過一個組件在角2相似角度1個app.run

在角一個我用於路由設置,以限定一個可變和幾個問題基於這個變量,我在app.run()中寫了一個代碼,它將檢查這個變量是否是真的。 所以當它改變路由器時它會做的是檢查那個條件。

現在如果我想在angularjs 2中實現相同的事情。 我們沒有app.run()而是我們有bootstrap並且可以在路由器配置中定義用戶定義的變量?

我試過搜索,但無法找到我的問題的答案。如果需要澄清我提出的問題,請告訴我。

謝謝

回答

1

當一個組件在angular2生命週期的OnInit加載被稱爲 - 如果你想查詢從每當一個新的組件加載,你可以編寫代碼裏面有用戶自定義的配置,喜歡的事的東西:

import { Component, OnInit } from '@angular/core' 

@Component({ 
    ... 
}) 
export class MyComponent implements OnInit { 

    ngOnInit() { 
     // write the check for the config value in here 
    } 
} 

你要做的唯一的其他東西是哪個文件用戶在它定義的配置和使用進口的ngOnInit方法爲您定義的每個組件中。

另一種方法是訂閱由angular導出的位置服務,每次位置url更改時運行檢查。爲避免重複訂閱,您需要將此代碼放在主AppComponent文件中。唯一需要做的其他事情就是擁有一個全局服務,您可以將其導入到所有組件中,這些組件包含某種可以告訴您配置值是否設置爲特定值的標誌。

import { Component, OnInit } from '@angular/core' 
import { Location } from '@angular/common' 

... METADATA ... 

export class AppComponent implements OnInit { 

    constructor(private location: Location) {} 

    ngOnInit() { 
     this.location.subscribe((value) => { 
      // do check in here/set value inside global service 
     }); 
    } 
+0

喔好吧,我剛剛得到你想say.gr:-檢查會話我可以創建一個單獨的類並調用該類中的每個組件ngOnInit檢查會話是否有或沒有什麼。基於這一點,我可以做我想要的行動。如果我錯了,請讓我知道。謝謝你的哥們 – RKD