Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 延迟对象的AngularJS求值_Javascript_Angularjs_Angularjs Scope_Deferred - Fatal编程技术网

Javascript 延迟对象的AngularJS求值

Javascript 延迟对象的AngularJS求值,javascript,angularjs,angularjs-scope,deferred,Javascript,Angularjs,Angularjs Scope,Deferred,我有一个简单的应用程序,它从REST API返回对象,并将它们绑定到一个范围变量。这可以正常工作,但如果我尝试对从$resource promise返回的对象执行任何操作,则对象是未定义的 我将这些放在一起,使用$q服务复制行为。第一部分将一个简单数组绑定到作用域,第二部分通过延迟对象获取相同的数组。第三个通过延迟对象再次获取数组,然后尝试对返回的对象应用一些简单的逻辑。不幸的是,返回的对象没有“length”属性。很明显,我遗漏了一些东西,大概是$scope的一些用法。$apply,但我在那里

我有一个简单的应用程序,它从REST API返回对象,并将它们绑定到一个范围变量。这可以正常工作,但如果我尝试对从$resource promise返回的对象执行任何操作,则对象是未定义的

我将这些放在一起,使用$q服务复制行为。第一部分将一个简单数组绑定到作用域,第二部分通过延迟对象获取相同的数组。第三个通过延迟对象再次获取数组,然后尝试对返回的对象应用一些简单的逻辑。不幸的是,返回的对象没有“length”属性。很明显,我遗漏了一些东西,大概是$scope的一些用法。$apply,但我在那里也没有运气


我做错了什么?

如果要使用length,请使用
deferredPersons。然后使用.length

if(deferredPersons.then.length>0)


你需要使用
然后
遵守你的承诺

asyncInit().then(function(data){
  $scope.deferredPersons = data;
});
从这里开始,您可以按常规访问您的数据,并可以对其调用
.length
。请注意,在使用Promission时,您应该始终处理错误,否则可能很难调试。

谢谢。修正后的now具有基本的错误处理,并显示了对延迟对象所做的实际工作。