更新:我挖得更深一点,发现Angular 在1.2.0 之后不推荐使用自动展开承诺。
我知道 Angular JS 将评估作为承诺的范围变量,然后在承诺履行时更新控制器的视图。
我的问题是:
http://jsfiddle.net/dhruvkaran/Lv5vF/4/
<div ng-app="myApp">
<div ng-controller="DemoController">
{{foo}}
</div>
</div>
<script>
var myApp = angular.module("myApp", []);
myApp.controller('DemoController', function($scope) {
$scope.foo = "bar";
});
</script>
工作得很好,但是,
http://jsfiddle.net/dhruvkaran/Lv5vF/5/
<div ng-app="myApp">
<div ng-controller="DemoController">
{{foo}}
</div>
</div>
<script>
var myApp = angular.module('myApp', []);
myApp.controller('DemoController', function($scope, $q) {
var deferred = $q.defer();
deferred.resolve("bar");
$scope.foo = deferred.promise;
});
</script>
才不是。
我在这里做错了什么?