所以即时使用https://github.com/eddelplus/CornerCouch/blob/master/angular-cornercouch.js 访问我的CouchDB。如果我打印对象,它会向我显示整个事物。
console.log($scope.item); console.log($scope.item.author);
但如果我打印出这个对象的一个成员变量,我知道它是id,告诉我undefined。
我的猜测是它与原型设计有关!
这可能是什么。
答案 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();
});