Похоже, то, что вы хотите, не является поставщиком напрямую.Кажется, что вам нужна фабрика, которая будет реальным поставщиком, и тогда у него будет метод create, который вернет вам экземпляр фактической службы, которая не является одиночной.
что-то вроде
@Injectable()
export class MyPFactory {
public create(): MyP {
return new MyP();
}
}
Таким образом, вы добиваетесь многоразового обслуживания, не сходя с ума с переопределением и, возможно, намного более чистым модульным тестом.Я бы не сказал, что это строго решение, это просто способ, который я использовал много раз, чтобы подойти к вашей проблеме.
Таким образом, MyP не должен быть оформлен как Injectable, поскольку фабрика создаст еговызов метода create в компонентах / директивах, которые будут его использовать.
https://en.wikipedia.org/wiki/Factory_method_pattern