2016-02-11 8 views
0

Я использую ngResource на заводе для извлечения данных из URL-адреса REST API, а затем выполните некоторую базовую обработку полученных данных. Это работает нормально (проверено с использованием console.log()). Я правильно вложил зависимости в свой корневой модуль и в главный контроллер и установил переменную $scope, равную этим извлеченным данным.Использование ngResource в AngularJS SPA

В HTML, я положил {{variableName}} внутри желаемого тега. Однако он не заселен.

Что мне не хватает? Нужно ли добавлять $watch или что-то еще, чтобы это работало?

PS -

var dataResource = $resource("http://<URL>"); $scope.trialData = dataResource.get();

Это trialData заполнит значения из того же URL просто отлично, когда я добавить это непосредственно к контроллеру.

+0

Трудно сказать точную проблему, не видя полного примера с шаблоном html и контроллером. Первоначально '$ scope.trialData' будет пустым объектом, но когда' get() 'завершает его, будет заселен. Вы говорите, что используете 'controllerName.variableName', но ваш код обращается к области как' $ scope', поэтому у вас не будет имени контроллера. – Duncan

+0

@ Duncan Извините, это был недосмотр в моей попытке упростить проблему. Исправлена. –

ответ

0

Ресурсы используют асинхронный запрос. Вы должны дождаться, когда их обещание будет разрешено следующим образом:

dataResource.get().$promise.then(function(object){ 
    $scope.trialData = object;// or maybe object.data 
}); 
+0

Должен ли я делать это на фабрике? В настоящее время я использую фабрику для возврата значения, но назначая его переменной '$ scope' внутри контроллера. –

+0

nop это не то, как обещает работа. Если вы вернете dataResource.get() на свой завод. Затем вы должны использовать поля $ prom в вашем контроллере. Вы должны взглянуть на https://docs.angularjs.org/#!/api/ng/service/$q, чтобы понять, как работают обещания. – Walfrat

+0

Еще одна вещь, если вы используете синтаксис controllerAs, используйте это вместо $ scope. – Walfrat

 Смежные вопросы

  • Нет связанных вопросов^_^