之前,我的代码在AngularJs 1.1.5 版本中运行良好,但升级到1.2.x 后,以下代码无法运行。 1.2.x 有什么变化吗?
这是演示:http://plnkr.co/edit/w2O8Ci 它无法显示“世界”,但如果您将 angularjs 改回 1.1.5,一切正常。
代码如下:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<!--<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>-->
<script src="http://code.angularjs.org/1.2.9/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.factory('NameFactory', function($http, $q) {
return {
getName: function() {
var deferred = $q.defer();
deferred.resolve({
name: "World"
});
return deferred.promise;
}
}
});
app.controller("NameCtrl", function($scope, NameFactory) {
$scope.name = NameFactory.getName();
});
</script>
</head>
<body ng-controller="NameCtrl">
<h1>Hello, {{name.name}}</h1>
</body>
</html>
最佳答案
是的,1.2 中确实发生了一些变化, View 不能再自动展开 promise 。 参见 Angularjs promise not binding to template in 1.2
关于javascript - 为什么 promise in factory 自 AngularJs 1.2.0 之后就不起作用了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193400/