AngularJS可以注入工厂或服务的命名实例吗?

时间:2014-04-03 16:19:44

标签: angularjs

我刚开始使用Angular,其项目似乎非常适合它。在这个项目中,我必须创建一个表单生成器的几个实例,所以我决定从表单生成器代码中创建一个服务。一切都很好,直到我考虑到其他要求:表格预览。

我正在考虑this guy does的内容,但后来我意识到使用他的方法意味着我无法存储/共享多个表单(至少使用Angular使用的默认注入方法)所以我给了它有些想法并决定为每个表单设置一个FormBuilder服务实例会削减它。如何控制将哪些服务实例注入我的控制器?

2 个答案:

答案 0 :(得分:0)

你不会注入一个特定的FormBuilder实例而不是InstanceRegistry吗?

答案 1 :(得分:0)

创建一个服务,该服务返回一个名称要解析的函数并返回已解析的实例。这将从你的控制器调用。

如果您使用的是ngRoute或ui.router,则可以选择为路径创建解析,并在解析块中进行解析。

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

HTH