2015-07-20 1 views
0

Я пытаюсь получить некоторые настройки конфигурации из API перед загрузкой моего представления, поэтому я не получаю миллиардные ошибки интерполяции от попытки использовать неопределенные данные. Приложение не сбой из-за ошибок, но мне нужно избавиться от ошибок, не считая ошибок.Контроллер не нашел способ решения

Я понял, что воспользуюсь решением и дождитесь разрешения метода конфигурации перед загрузкой представления, но я не могу получить данные на своем контроллере, чтобы я мог использовать его там. Я смотрел на другие вопросы, и, видимо, так вы должны это делать. Что я делаю неправильно?

Этот вопрос не в api заводе, то api.getConfig() возвращает обещание $http.get запрос к внешней API просто отлично, так что я не буду включать функцию фрагмент кода здесь.

В моей маршрутизации:

.when('/:category/top_rated', { 
    templateUrl: 'views/pages/results.html', 
    resolve: { 
    'isAuth': ['fbRefs', function(fbRefs) { 
     return fbRefs.getAuthObj().$requireAuth(); 
    }], 
    'getConfig': ['api', function(api) { 

     api.getConfig().then(function(data) { 
     return data; 
     }); 
    }] 
    } 
}) 

Затем в мой контроллер я впрыснуть это так:

core.controller('MainCtrl', ['getConfig', function(getConfig) { 

    getConfig.then(function(data) { 
    console.log(data); 
    }); 

}]); 

Однако это вызывает ошибку $injector:unpr. Почему он не может найти способ решения?

+0

Можете ли вы связать контроллер с тем, когда заявление? controller: 'MainCtrl', resolve/* ... */ – cyan

+0

@cyan В моем шаблоне используется другой контроллер, поэтому я не могу этого сделать. Я все равно пробовал, но все равно получаю ту же ошибку. – Chrillewoodz

+0

что-то с проблемой инъекции зависимостей – cyan

ответ

0

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

.when('/:category/top_rated', { 
 
    templateUrl: 'views/pages/results.html', 
 
    controller: 'MainCtrl', 
 
    resolve: { 
 
    'isAuth': ['fbRefs', function(fbRefs) { 
 
     return fbRefs.getAuthObj().$requireAuth(); 
 
    }], 
 
    'getConfig': ['api', function(api) { 
 

 
     api.getConfig().then(function(data) { 
 
     return data; 
 
     }); 
 
    }] 
 
    } 
 
})