Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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 延迟在Angular版本1.2.2中无法解析_Javascript_Angularjs_Deferred - Fatal编程技术网

Javascript 延迟在Angular版本1.2.2中无法解析

Javascript 延迟在Angular版本1.2.2中无法解析,javascript,angularjs,deferred,Javascript,Angularjs,Deferred,当谷歌减速时,询问stackoverflow。。。出于某种原因,我找不到有关此问题的信息: 我读了教程,这让我想到了plunk。由于某种原因,deferreds在我刚刚使用yo-generator创建的项目中不起作用,即使是在我直接从plunk复制代码之后。最后我发现,我使用的是angular版本1.2.2,而plunk使用的是1.1.5 真正的问题似乎是延迟。resolve没有按预期工作(根本没有)。将plunk中的版本切换到1.2.2后,可以看到此行为。奇怪的是,用户界面正在被3(?)个对象

当谷歌减速时,询问stackoverflow。。。出于某种原因,我找不到有关此问题的信息:

我读了教程,这让我想到了plunk。由于某种原因,
deferred
s在我刚刚使用
yo-generator
创建的项目中不起作用,即使是在我直接从plunk复制代码之后。最后我发现,我使用的是angular版本1.2.2,而plunk使用的是1.1.5

真正的问题似乎是
延迟。resolve
没有按预期工作(根本没有)。将plunk中的版本切换到1.2.2后,可以看到此行为。奇怪的是,用户界面正在被3(?)个对象更新

编辑:我还发现,更改控制器以在中设置属性
then()
函数工作正常。因此,1.2.2版不再允许直接执行绑定承诺,如
$scope.message=HelloWorld.getMessages()
。为什么呢?此外,promise的界面也发生了变化,不再具有
始终
功能。这是原因吗?
在grml之前我更喜欢它

有人能澄清这一点吗


Daniel在1.2版中,您的
getMessages()
方法是一个promise对象,而不是解析的数据本身。Angular不再自动为您打开promise对象,因此您需要在回调中访问解析的数据,如下所示:

HelloWorld.getMessages().then(function(data){
  $scope.messages = data;
});
说明上述改变。这一突破性的变化:

$parse

  • 由于,$parse和模板一般不再 自动打开承诺。此功能已被弃用,如果 绝对需要,可在过渡期间通过
    $parseProvider.unapprovisies(true)
    api

  • 由于,特性 添加在rc.2中,如果函数返回值 是承诺(如果承诺展开已启用-请参阅上一点), 由于打破了流行的使用模式而被还原


谢谢你的澄清。不管怎样,这有点悲伤。我喜欢控制器中的旧语法。