我正在阅读使用AngularJS 掌握Web应用程序开发一书,在第3章中,当autors花了大约$ q并承诺他们写了一个$ timeout的例子。
的index.html
<h1>Hello, {{name}}!</h1>
controller.js
$scope.name = $timeout(function () {
return "World";
}, 2000);
问题是我测试代码并且这对我不起作用,如果我写错了,我不会写,并且看几次,但我不知道错误在哪里。< / p>
我更改了控制器中的代码:
$timeout(function () {
$scope.name = "World";
}, 2000);
并且工作得很好。
任何人都知道为什么会发生这种情况?我包含了一个示例here
的插件答案 0 :(得分:2)
这是因为超时返回promise,而不是字符串。在回调内部返回将返回将在链中传递的内容。
使用它的正确方法是:
$timeout(function () {
return "World";
}, 2000).then(function(p) {
$scope.name = p;
});