Angularjs指令,维护每个指令实例的内部状态

时间:2016-04-03 03:23:04

标签: angularjs angularjs-directive

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

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

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

有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

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

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

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

    function instance() {
        // functionality
    }
}