2014-02-12 4 views
1

Принести объект базы данных с помощью следующего кода:Не удается получить доступ к свойствам объекта из ngResource

// Lookup Project object from server 
$scope.project = projectModel.get({}, {'id': session.projectId}); 
console.log('projectModel', $scope.project); 

Выход вышеперечисленное:

projectModel

Я не могу на самом деле интерпретировать этот вывод - то есть какие переменные за пределами {...}? В любом случае, пытаясь прочитать, например, projectModel.name просто возвращает undefined - почему?

+0

'$ scope.project.name' должен быть способ чтения' projectModel's' имя – kubuntu

ответ

1
projectModel.get({}, { 'id': session.projectId }, 
    function (successResponse) { 
     // success callback 
     console.log('successResponse:', successResponse); 
    }, 
    function (errorResponse) { 
     // failure callback 
     console.log(errorResponse); 
    } 
); 

попробовать это. Вы получите обещание в ответ на успех.

0

projectModel - это не то же самое, что $ scope.project, в $ scope.project вы получаете обещанное решение и когда оно разрешено, вы можете получить доступ к имени с помощью: console.log ('$ scope.project.name') ; Ваш ресурс - projectModel является Propably deffered объект

Вы можете прочитать об обещаниях здесь: $q

+0

Спасибо! Но я вижу данные, которые я хочу в выводе выше - как я могу получить к нему доступ? –

+0

Если $ scope.project.name дает вам undefined, вы можете получить к нему доступ следующим образом: projectModel.get ({}, {...}). Then (function (response) {$ console.log (response, response.name);}); –

+0

'.then()' - это метод '$ q', правильно? Но я не думаю, что ngResource использует '$ q', не так ли? –

2

Вы совершили асинхронный вызов, а значение, которое вы хотите, скорее всего, еще не назначено при попытке печати на консоль. Вы можете назначить $scope.project этот путь

projectModel.get({'id': session.projectId}, 
    function (data) { 
     $scope.project = data; 
}); 
+0

Хм, это, скорее всего, напечатает «неопределенный», не так ли? Поскольку оператор журнала выполняет перед обратным вызовом. –

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