无法从ngResource对象访问属性

时间:2014-02-12 14:06:03

标签: javascript angularjs ngresource

我使用以下代码获取数据库对象:

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

以上的输出是:

projectModel

我无法真正解释那个输出 - 即{...}之外的变量是什么?在任何情况下,试图阅读例如projectModel.name只返回undefined - 为什么?

3 个答案:

答案 0 :(得分:2)

您进行了异步调用,当您尝试打印到控制台时,很可能尚未分配所需的值。您可以这样指定$scope.project

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

答案 1 :(得分:1)

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

试试这个。您将在成功响应中获得承诺值。

答案 2 :(得分:0)

projectModel与$ scope.project不同,在$ scope.project中,您获得已解决的承诺,解析后,您可以使用以下命令访问名称:console.log('$ scope.project.name'); 您的资源 - projectModel可能是一个被保护的对象

您可以在此处阅读承诺:$q