2015-07-01 95 views
0

我對AngularJS真的很陌生,我不知道最佳實踐,所以這裏是我的問題。正確使用父母範圍屬性

父母控制器屬性的建議用途是什麼?我應該通過整個webapp使用不同的別名,還是有另一種方法來使用父控制器的變量和方法?

我使用partials html,似乎它可能會令人困惑請參閱userCtrl.doSomething當部分沒有userCtrl的聲明(因爲它聲明的部分多數民衆贊成在此包括)。

在此先感謝!

+1

儘可能地把每個「偏」的思維習慣作爲自己的獨立程序。您可以將輸入參數用於指令,共享服務或事件以在每個單獨的部分之間進行通信。你應該設計partials,以便它們可以在頁面上呈現的唯一東西時發揮作用。 – Claies

回答

0

您應該避免使用$ parent以及未在控制器中聲明的範圍變量。

爲什麼?因爲如果你使用它,你的控制器將直接依賴於你實例化的地方(ng-controller)。所以你不會尊重MVC模式。您的控制器不應該依賴於視圖。

你的控制者不應該知道他的父母是什麼。因爲你可以做到這並不意味着你應該這樣做。

要在控制器之間共享數據,請改爲使用服務。這更簡單,更清潔。

+0

好的,我可以共享數據惠特服務,但是如果我需要調用父控制器範圍的方法呢? –

+0

**服務也可以存儲功能**。如果您真的需要在控制器上使用此方法(如果此方法不能處於單例(服務)並且真正取決於控制器的實例),則可以使用**角度事件**。但是服務應該始終是你首先想到的:角度依賴注入是一個非常好的工具。 –

+0

我想我明白了。例如,爲了控制用戶登錄,我應該有一個我需要的服務,並將其注入到所有需要它的控制器中,並在控制器中公開給視圖,如下所示:$ scope.user = UserService.getUser( ); –