Angularjs разрешить обещание до запуска контроллеров

Я ищу способ выполнить свое обещание до того, как контроллер начнет работать. Но что бы я ни пытался, контроллер уже работает, а результат все еще ждет. Может кто-нибудь мне помочь :(

templateUrl: 'tag/details.html',
resolve: {
    result: function (TagResource, $route) {
        TagResource.get({ id: $route.current.params.id }).$promise.then(function (data) {
            return data
        });
    }
}

Всего 1 ответ


Верните обещание:

templateUrl: 'tag/details.html',
resolve: {
    result: function (TagResource, $route) {
        ̶T̶a̶g̶R̶e̶s̶o̶u̶r̶c̶e̶.̶g̶e̶t̶(̶{̶ ̶i̶d̶:̶ ̶$̶r̶o̶u̶t̶e̶.̶c̶u̶r̶r̶e̶n̶t̶.̶p̶a̶r̶a̶m̶s̶.̶i̶d̶ ̶}̶)̶
        return TagResource.get({ id: $route.current.params.id })
        .$promise.then(function (data) {
            return data
        });
    }
}

ЕЩЕ ЛУЧШЕ

Пропустите метод .then :

templateUrl: 'tag/details.html',
resolve: {
    result: function (TagResource, $route) {
        ̶T̶a̶g̶R̶e̶s̶o̶u̶r̶c̶e̶.̶g̶e̶t̶(̶{̶ ̶i̶d̶:̶ ̶$̶r̶o̶u̶t̶e̶.̶c̶u̶r̶r̶e̶n̶t̶.̶p̶a̶r̶a̶m̶s̶.̶i̶d̶ ̶}̶)̶
        return TagResource.get({ id: $route.current.params.id }).$promise;
    }
}

Есть идеи?

10000