2016-10-06 100 views
0

我一直在使用一些AngularJS項目,其中指令被廣泛用於處理以大量JavaScript爲背後的視圖。它感覺不太對,它們也不是最容易測試的東西,除非您將代碼移出到控制器並將其綁定到指令。對大視圖使用角度指令

一個例子就是創建一個大型表單,作爲一個指令和一個大型鏈接函數。不是很可測試的,而且它只在整個應用程序中使用過一次。

他們這樣做的代碼很好的,你最終像這樣

<h1>example Header</h1> 

<custom-form form-data="somemodel"></cutom-form> 

<p>Lots of other stuff here</p> 

代碼是否有興趣在其他人怎麼接近指示和意見,我首先想到的指令應該被重複使用非常小的組分分離。

回答

0

基本上,只有少數情況下,我會執行指令和這些也都是我試圖用

  1. 常見的可重用組件粘我可以在項目的任何地方使用(如時間輸入指令與添加 - 規則下拉菜單允許選擇時間單位,比如秒/分鐘/小時/天)
  2. 擴展或補丁第三方指令

大多數時候,應該利用AngularJS MVC結構,以充分利用其優勢。

+0

如果你有一個由幾個部分組成的屏幕,你會使用控制器+視圖嗎?那會使用ngInclude嗎? –

+0

對於這種情況,是的,使用ngInclude是模塊化頁面瀏覽內容的一種很好的方式,但是您可能需要小心,ngIncude異步獲取模板,如果您嘗試操作ngIncluded DOM,您可能會遇到意外的行爲。我們在我們的索引頁面中使用ngInclude作爲頁眉,頁腳,容器和導航菜單,但是我們在ngInclude內部使用angular-loading-bar時遇到了問題,請參閱https://github.com/chieffancypants/angular-loading-bar/issues/ 217。 –

+0

有趣的是,我還沒有看到ngInclude到目前爲止在我一直使用的項目上使用過很多,但它聽起來像一個整潔的方式,並在正面更多地測試指令代碼,更具體地說,大量指令與大量的代碼背後 –