根據該角文檔:
範圍是應用控制器和視圖之間的粘合劑。在模板鏈接階段,指令在範圍上設置$ watch表達式。 $ watch允許向指令通知屬性更改,這允許指令將更新的值呈現給DOM。
現在我的問題是:如果我的功能沒有連接到的觀點,我們應該使用$範圍或不?
根據該角文檔:
範圍是應用控制器和視圖之間的粘合劑。在模板鏈接階段,指令在範圍上設置$ watch表達式。 $ watch允許向指令通知屬性更改,這允許指令將更新的值呈現給DOM。
現在我的問題是:如果我的功能沒有連接到的觀點,我們應該使用$範圍或不?
我假設你的意思是如果你應該做$ scope.functionName = function(),即使函數沒有連接到視圖。
不,你不應該,爲什麼你會暴露一個功能的視圖,這是不需要的視圖?此外,只有使用函數funcName()時,您才能更好地瞭解哪些函數在內部。
正確,那是我的想法,但不使用$ scope,可以使該函數成爲全局的。它可以從任何地方訪問。對? – 2014-11-06 08:57:11
我不這麼認爲。它仍然在控制器的背景下。 – Ngschumacher 2014-11-06 10:16:11
您不應該使用$scope
來聲明您正在使用的每個函數,特別是如果它沒有連接到視圖。
但是,有些情況下需要在未連接到視圖的函數中使用$scope
,例如,如果要在範圍樹上發出/接收/廣播消息或訪問父範圍上的某些內容(儘管這不是一個好習慣)。
如果您想發射/接收/ brodcast,您可以使用服務並將$ scope作爲參數傳遞給該服務的某種方法。 – 2014-11-06 08:40:05
不使用$範圍,不會使它成爲全局函數 – 2014-11-06 08:57:39
我認爲你不應該。它會提高您的應用程序性能,因爲未連接到範圍的功能將不會在每個摘要循環中進行檢查。 – akn 2014-11-06 07:57:23