От Angular documentation
Важно понимать, что вызов метода $ объекта ресурса немедленно возвращает пустую ссылку (объект или массив в зависимости от IsArray) , Как только данные возвращаются с сервера, существующая ссылка заполняется фактическими данными. Это полезный трюк, поскольку обычно ресурс присваивается модели, которая затем отображается в виде. Наличие пустого объекта не приводит к рендерингу, как только данные поступают с сервера, тогда объект заполняется данными, и представление автоматически повторно отображает себя, показывая новые данные. Это означает, что в большинстве случаев никогда не нужно писать функцию обратного вызова для методов действий.
Ключевым моментом здесь является то, что объект, который вы проходите, НЕ является обещанием.
Обещание - это способ сказать, что вы ждёте чего-то, чтобы закончить сначала. Это костяк ajax, и я бы рекомендовал прочитать его, если вы незнакомы.
Для того, чтобы $ Q работу вы должны будете дать обещание вместо объект или ссылку вместо
Из той же документации
экземпляры ресурсов и сбора имеют эти дополнительные свойства:
$ обещают: обещание первоначального взаимодействия с сервером, которое создало этот экземпляр или коллекцию.
При успешном выполнении обещание разрешается с помощью экземпляра экземпляра ресурса или объекта коллекции , обновленного данными с сервера. Это упрощает , чтобы использовать в разрезе раздел $ routeProvider.when() для отложенного просмотра рендеринга до загрузки ресурсов (ов).
При отказе обещание разрешено с помощью объекта ответа HTTP, без свойства ресурса.
$ resolved: true после завершения первого взаимодействия с сервером (либо с успехом, либо отклонения), перед этим. Знание того, был ли разрешен ресурс , полезен при привязке данных.
Так что вам нужно будет сделать что-то вроде
$scope.services = Services.query({idResource: 1});
$scope.brands = Brands.query({idResource: 1});
$q.all([
$scope.services.$promise,
$scope.brands.$promise
]).then(function() {
//CODE AFTER RESOURCES ARE LOADED
});
Как вы знаете, это не работает, то где ваш результат массив? – Shomz