Засел над проблемой: у меня есть несколько экземпляров директивы, при инициализации директивы в её контроллер инжектится сервис, который должен (по документации) создавать свой экземпляр конструктора:
<div sample=""></div>
<div sample=""></div>
<div sample=""></div>
angular.module('application', [])
.service('fooBar', [function() {
var param = null;
this.setParam = function(value) {
param = value;
};
this.getParam = function() {
return param;
};
}])
.directive('sample', [function() {
return {
restrict: 'AE',
scope: false,
controller: ['fooBar', function(fooBar) {
console.log(fooBar.getParam());
fooBar.setParam('test');
}]
}
}])
jsfiddle.net/dmitry_shvalyov/7d7syjtx
Результат в консоле. По идее, если сервис создаёт новый экземпляр (new Constructor), то каждый раз после создания метод getParam должен возвращать null. Но что-то идёт не так и не соображу как исправить.