2013-05-02 16 views
0

我是trying to understand $ scope以及控制器和視圖如何組合在一起。當Angular第一次運行DOM元素時,當它發現ng-controller時它會做什麼?我知道什麼時候它發現綁定變量,它會創建watch或keydown事件,也會爲它自己注入的事件創建並監視其他相關事件。這是通過爲給定的DOM元素創建一個範圍來完成的。所以當物品在視圖或模型中發生變化時,它可以將值推送到適當的位置。我的問題是什麼時候控制器被實例化,$ scope被注入到它以及$ scope如何在事件發生時調用關聯的方法? 謝謝控制器何時在AngularJS中起作用?

回答

2

爲了清晰起見,您必須仔細閱讀其網站上的文檔。從我理解的框架在視圖上遇到ng-controller屬性時,它會附加並實例化控制器。直接在控制器功能中的任何代碼都將在那裏運行。如果您希望代碼僅在某些事件(如單擊事件)上運行,則您將ng-click='myFunction()'放在元素上,myFunction放置爲$ scope屬性。如果你想在某個其他事件的控制器內運行代碼,那麼你需要在控制器內使用$scope.$on,並在$scope.$broadcast之外觸發外部事件。請注意,控制器應該只有業務邏輯。任何直接操作DOM的代碼都在指令中。在指令中使用scope屬性來綁定控制器和指令之間的變量和函數。

正如我所說的,這將有助於瀏覽YouTube上的文檔和視頻,以更好地瞭解AngularJS的基礎。