У меня есть factory
вроде этого:Как получить доступ завода из контроллера
rasm.factory('serviceUrl',[function(){
function serviceUrl(){
this.p = location.protocol;
this.h = getHost();
}
serviceUrl.prototype.getServiceUrl = function(){
return this.p +'//'+ this.h + '/services/'
}
}])
я реализовал это в JavaScript объектно-ориентированный way.this является ресурсом, который я использовал https://medium.com/opinionated-angularjs/angular-model-objects-with-javascript-classes-2e6a067c73bc#.du8tor7h2
Моей проблемы , как я могу получить доступ к этой функции getServiceUrl с моего контроллера. это даже возможно? спасибо, ребята
Я думал, что мне нужно создать объект из serviceUrl. например ** var obj = new serviceUrl(); obj.getServiceUrl() ** –
Нет, заводы в Angular являются singleton на протяжении всего жизненного цикла вашего приложения, что означает, что Angular делает то же самое ('new serviceUrl') только один раз, а затем тот же экземпляр доступен везде, используя DI. –
На самом деле это неправда, угловой не вызывает NEW для заводов, но только выполняет рецепт по мере его возвращения (и кэширования) результата. в этом случае я считаю более подходящим использование службы. – Karim