2014-04-03 92 views
0

我剛從Angular開始,看起來非常適合這個項目。在這個項目中,我必須創建一個表單生成器的幾個實例,所以我決定從表單生成器代碼中提取服務。一切都很好,直到我考慮到其他要求:表單預覽。AngularJS可以注入工廠或服務的命名實例嗎?

我在想什麼this guy does,但後來我意識到使用他的方法意味着我不能存儲/共享多個窗體(至少使用Angular使用的默認注入方法),所以我給了它一些想法並決定每個表單有一個FormBuilder服務實例會將其切斷。我如何控制哪個我的服務實例被注入到我的控制器中?

回答

0

顯然,你不會注入一個特定的FormBuilder實例而不是一個InstanceRegistry?

+0

我有點明白的地方你的觀點是怎麼回事,請詳細說明。 – Machinarius

0

創建一個服務,返回一個名稱來解析並返回解析實例的函數。這將從您的控制器調用。

(可選)如果您使用ngRoute或ui.router並在解析塊中進行解析,則可以爲路由創建解析。

.when("...",{ 
controller:"...", 
templateUrl:"...", 
resolve:{ 
form1:["$formFactory", function($formFactory){ 
return $formFactory("form1") 
}) 
} 
}) 

HTH

+0

第二種方法似乎對我更清楚,我會用它。謝謝 – Machinarius