Plunker (Вероятно, объясняет проблему без моего описания ниже)AngularJS: множественные Фабрика экземпляры любого Прототипа наследование
У меня есть следующие построить в моем угловом-App (также см Angular Services для ссылок):
Я использую a Factory BaseService
, который выполняет несколько функций. Я определяю эти функции на BaseService.prototype
, чтобы они были публичными позже (также см. Ссылку выше).
Частные переменные объявляются с использованием ключевого слова var
.
Эта фабрика инициируется несколькими службами, где каждая служба предоставляет свои собственные значения для инициализации. Однако на заводе все еще один сингл, поэтому во второй раз, когда он инициализируется, он перезаписывает частные переменные, используемые первой службой.
Есть ли наилучшая практика для предотвращения этого?
Если нет - можете ли вы предложить решение (даже если оно требует удаления частных переменных)?
в конструктор я хранится 'this' к переменной' '' обслуживания, поскольку this' относится к неправильному контексте при использовании в других объектов, вложенных друг в друга функции или угловые . для всех циклов. Очевидно, это не решает мою проблему, потому что переменная 'service' указывает на неправильное местоположение также после следующего вызова конструктора. Как я могу надежно вызывать функции моей фабрики, когда я не могу получить доступ к контексту через 'this' и не сохранять мой контекст в переменной? –
@ HW Я точно не знаю, что именно вы пытаетесь сделать, но цикл работает отлично, см. Этот plunkr: http://plnkr.co/edit/56oXXvl75zH4mTfAqMsd?p=preview, оба угловые.forEach и ngRepeat работают нормально –
Я использовал 'angleular.foreach' в другом контексте (вы можете передать контекст в качестве третьего параметра). Таким образом, использование 'angleular.foreach' на заводе, но в другом контексте, не позволяет мне выполнять функции моей фабрики. Это было не обязательно, хотя и я мог бы переписать свой код - казалось бы, был плохой стиль в любом случае :) –