在我的MEANJS应用程序中。我正在从我的控制器函数
中将范围变量的值设置为查询结果$scope.myVar = User.query();
console.dir($scope.myVar); //Returns all the documents from the DB correctly
console.log('User's name is : ' + $scope.myVar[0].name); //This comes as undefined
不知何故,在我尝试在同一个控制器函数中打开名称字段的下一行中,它是未定义的。此外,在我的视图文件中正确读取整个结果。所以当我打电话时
{{myVar.name}}
在我的视图文件中,它正确输出名称。我根本无法理解这种行为。这是我第一次和Angularjs一起工作,我可能错过了一些基本的东西,但是我感谢你们现在的任何帮助。
编辑 - 此外,$ scope.myVar的长度在控制器中始终为0
答案 0 :(得分:0)
基本上User.query()
会返回一个promise对象,因此您需要在promise成功中更新$scope
对象。
<强>代码强>
User.query().$promise.then(function(res){
//you will get response here in data obj
$scope.myVar = res;
console.dir($scope.myVar);//Returns all the documents from the DB correctly
console.log('User's name is : ' + $scope.myVar[0].name); //This comes as undefined
});
答案 1 :(得分:0)
var myObj= User.query(function(response) {
console.log('Inside success response');
//Can access myObj values here easily
}, function(errResponse) {
console.log('Inside error response ' + errResponse);
});
我无法弄清楚如何在控制器中访问我的$ scope.myVar,但是我通过创建自己的工厂方法来完成一种解决方法,以按照我想要的方式检索数据。无法访问这些查询结果的问题在其他部分也确实存在问题。所以,如果有人有答案,请告诉我。
现在发布链接我用来弄清楚MEAN.JS工厂方法是如何插入的。希望这对某人有帮助。
https://groups.google.com/forum/#!searchin/meanjs/query()/meanjs/4R7rIolH9bs/P1R4YlKgowUJ