2016-04-03 109 views
2

我有一个依赖于服务的指令,我在服务中维护一些指令状态。 因此,无论何时在两个地方使用相同的指令,它都需要实例化新服务。 例如,Angularjs指令,维护每个指令实例的内部状态

<body> 
First directive instance: <custom-directive> 1 </custom-directive> 
Second directive instance: <custom-directive> 2 </custom-directive> 
</body> 

在这种情况下,两个控制器都填充了相同的服务对象,但我需要不同的服务对象到内部保持它们的状态。

有人可以帮忙。

回答

1

您仍然可以使用服务/工厂,但在服务中公开getInstance方法,该方法返回一个新实例,允许您为每个指令注入并随后创建一个新实例。

angular.module('app', []).factory('sharedService', sharedService); 

function sharedService() { 
    return { 
     getInstance: function() { 
      return new instance(); 
     } 
    } 

    function instance() { 
     // functionality 
    } 
}