对象CouchDoc成员无法访问

时间:2014-01-22 12:49:42

标签: javascript angularjs couchdb

所以即时使用https://github.com/eddelplus/CornerCouch/blob/master/angular-cornercouch.js 访问我的CouchDB。如果我打印对象,它会向我显示整个事物。

console.log($scope.item);
console.log($scope.item.author);

Inaccessible members

但如果我打印出这个对象的一个​​成员变量,我知道它是id,告诉我undefined。

我的猜测是它与原型设计有关!

这可能是什么。

1 个答案:

答案 0 :(得分:0)

正如迈克尔所提到的,这是通过你获得$ scope.item的异步性质来做的。我遇到了类似(或相同?)的问题,并通过调用$ scope。$ digest()修复了它。文档说你通常不需要明确地调用$digest,因为$apply(expr)将为你执行$ digest,但$ scope。$ digest()更简单(至少,它是什么使得在这种情况下最有意义的)。

所以,只是为了澄清:$ scope.item打印到控制台的原因是因为定义了$ scope.item,即使它在被调用时是空的。但是,在调用时,$ scope.item没有属性,因此$ scope.item.author未定义。

以下是我的代码中的示例。这个想法对你来说应该是类似的(我使用的是kanso db包)。

db.getList('problems', 'questionsByBranch', 'questions', function (err, data) {
    if (err) 
        return alert(err);

    $scope.questionsByBranch = data;    
    $scope.$digest();
});