2014-11-06 91 views
0

根據該角文檔:

範圍是應用控制器和視圖之間的粘合劑。在模板鏈接階段,指令在範圍上設置$ watch表達式。 $ watch允許向指令通知屬性更改,這允許指令將更新的值呈現給DOM。

現在我的問題是:如果我的功能沒有連接到的觀點,我們應該使用$範圍或不

+1

我認爲你不應該。它會提高您的應用程序性能,因爲未連接到範圍的功能將不會在每個摘要循環中進行檢查。 – akn 2014-11-06 07:57:23

回答

2

我假設你的意思是如果你應該做$ scope.functionName = function(),即使函數沒有連接到視圖。

不,你不應該,爲什麼你會暴露一個功能的視圖,這是不需要的視圖?此外,只有使用函數funcName()時,您才能更好地瞭解哪些函數在內部。

+0

正確,那是我的想法,但不使用$ scope,可以使該函數成爲全局的。它可以從任何地方訪問。對? – 2014-11-06 08:57:11

+0

我不這麼認爲。它仍然在控制器的背景下。 – Ngschumacher 2014-11-06 10:16:11

1

您不應該使用$scope來聲明您正在使用的每個函數,特別是如果它沒有連接到視圖。

但是,有些情況下需要在未連接到視圖的函數中使用$scope,例如,如果要在範圍樹上發出/接收/廣播消息或訪問父範圍上的某些內容(儘管這不是一個好習慣)。

+0

如果您想發射/接收/ brodcast,您可以使用服務並將$ scope作爲參數傳遞給該服務的某種方法。 – 2014-11-06 08:40:05

+0

不使用$範圍,不會使它成爲全局函數 – 2014-11-06 08:57:39