@jack3d

Как в таком случае придержаться принципа DRY в angularjs?

Друзья, очень интересует вопрос по принципам DRY в angular.

Сделали авто-вызов с factory в controller'e:
GunService.posts({}).$promise.then(function (data) {
      $scope.guns = data.results;
    });

Добавили новый gun:
$scope.addNewGun = function () {
      GunService.publish({
        gun_type: "fireball",
        data: {
          text: $scope.post.text
        }
      }).$promise.then(function () {
//как правильно тут вызвать (reload) GunService.posts? Нужно ее завернуть в функцию ранее?
        })
    };
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
function GunService ($rootScope){
  this.onGunAdded = function (callback){
    return $rootScope.$on(GunService.events.ADDED, callback);
  };   
  
  this.publish = function (params){
    // do your thing ...
    .then(function (newGun){
      $rootScope.$emit(GunService.events.ADDED, newGun);  
    });
  }
}

GunService.events = {
    ADDED: 'GunService.added'
};

function SomeController(GunService) {
  GunService.onGunAdded(gunAdded);
  this.add = function (){
     // do your thing
  }

  function gunAdded(newGun) {
    // Use newly created gun or do .posts    
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы