2017-04-26 72 views
1

我是Angular的新手,我試圖瞭解它處理文件應用程序的順序。 因此,根據我對訂單的理解: 1- main.ts被處理,並且屬於被導入的平臺的引導方法接受根模塊文件作爲參數。 2- app.module.ts被處理,將導入應用程序所需的所有必需的包和應用程序文件。這裏也是所有不同的組件和指令以及應用程序中沒有聲明用於應用程序的地方,以及應用程序根組件被引導的位置,從而導致從上到下渲染組件樹模型。 3 - 這是我努力完全理解發生了什麼的地方。Angular 2處理訂單

因此,從呈現的根組件開始,Angular會沿着子組件的父子路徑沿着子組件的樹並按順序渲染它們? 因此,比如說在AppComponent聲明之後是BookItemComponent,後面是BookItemList組件,最後是一個名爲FavoriteDirective的指令。 因此,AppComponent被啓動並在應用程序標記的主體中呈現父定製DOM元素。 然後,嵌套在這裏的是BookItemComponent,它創建了另一個名爲的自定義DOM元素。在這個組件類中,我們有一個名爲bookItem的輸入選擇器。 然後,嵌套在這裏的是BookItemList組件,其中包含一個名爲bookItems的書籍項目數組。 最後,FavoriteDirective只處理一些簡單的主機綁定,爲主機元素創建一個類。

所以我的問題簡而言之 - 說BookItemComponent被呈現,但它的標記中有一些依賴於BookItemListComponents類或FavoriteDirectives類的代碼的綁定。 Angular會跳過BookItem並查看這些文件嗎?或者,Angular會暫停對BookItemComponent類的處理,向前跳過並尋找它無法解釋的項目的數據匹配?或者,也許停止並迭代到下一個組件並按順序向前移動,一旦找到它所需的數據,它就無法解釋,然後返回以填補空白? 當我看到這種情況發生時,我發現很難遵循呈現的路徑。也許我只是在錯誤地思考呢?

回答

1

不確定你的意思是「查找數據」。綁定顯式地在哪裏查找數據。如果一個字段的綁定是指沒有數據還沒有,那麼它要麼拋出,如果這使得表達式無效像{{person.name}}personnull(你可以解決使用{{person?.name}}以避免除外)。否則,Angular會在數據變爲可用並且運行更改檢測後「查找」數據。

+1

變化檢測是我不理解。謝謝你給我正確的地方看! – Devoneous