2017-06-18 72 views
1

雖然在angularjs中有多個路由狀態,但每個狀態都由單獨的控制器操作(在我的情況下),現在我正在使用這個操作符的視圖模型。現在我需要知道,如果我在$ scope變量中有一個屬性與其他狀態的屬性相匹配,那麼其他狀態的範圍會發生什麼變化?

+0

是的,當一個視圖被銷燬並被另一個視圖替換時,舊的控制器及其範圍被銷燬。 – georgeawg

回答

1

當實例化的控制器創建一個全新的作用域對象,它與父$ scope對象原型鏈接。所以如果你有兩個獨立的兄弟控制器,它們各自的$scope對象是完全獨立的,並且沒有連接。

使用控制器時controllerAs語法(如果你在"ng-controller="MyCtrl as vm"然後指定vmthis.someProp在控制器將指向$scope.vm.someProp)將附加屬性到指定鍵的controllerAs下$scopethis

因此在技術上沒有區別是否使用this$scope關於特定的問題。

如果你想有兩個控制器之間共享的狀態,最好的辦法是有,將暴露它的服務,你會從兩個控制器注入該服務獲得的狀態。