Код в вашем rulesFactory
был только когда-либо запущен один раз - при первом запуске службы.
Он делает это на разрешения в первый раз:
- Угловая видит, что ищет что-то впрыснуть под названием «rulesFactory»
- Угловая находит сервис под названием rulesFactory. Он видит, что никто еще не использовал rulesFactory и не создает службу.
- rulesFactory служба конкретизируется, и $ таймаут запускается с обещанием возвращается
Он делает это на решить во второй раз:
- Угловая видит, что ищет "rulesFactory. rulesFactory уже существует!
- Угловой просто получает существующий объект для rulesFactory.
- Тайм-аут уже закончился раньше, и будут использоваться те же уже разрешенные обещания.
Исправить это, чтобы правилаFactory возвращали функцию, которая будет запускать таймаут снова - каждый раз, когда вы этого хотите.
И, кроме того, сами по себе $ таймаута возвращает обещание, так что вы можете просто вернуть $ таймаута :-)
http://jsfiddle.net/JbTkp/4/
если вы используете фабрику в виде строки в решимости он будет называться только один раз HTTPS: //groups.google.com/forum/#!msg/angular/QtO8QoxSjYw/SWxea0tOBGYJ –