Angular: снова принудительно разрешить

Мои зависимости, которые нужно решить, зависят от данных, которые меняются. Как заставить angular разрешать зависимости снова?

  $routeProvider.
  when('/blah', {
    templateUrl: '/static/views/myView.html',
    controller: 'myCtrl',
    resolve: {
        theData: function(myFactory) {
            return myFactory.promise;
        }
    }
  }).

i.e, каждый раз, когда этот блок when выполняется, я хочу повторно разрешить зависимость.

Это тривиально, или не так много?

Ответ 1

Блок разрешения перепроверяется каждый раз при изменении маршрута. В вашем случае вам нужно каждый раз возвращать новое обещание, а не то, как вы это делаете в настоящее время. Похоже, вы кешируете и возвращаете всегда один и тот же объект обещания.

resolve: {
    theData: function(myFactory) {
        return myFactory.getSomething();
    }
}

Заставьте myFactory.getSomething возвращать новое обещание при каждом вызове.