AngularJS文档说:
$ qpromise由模板引擎以角度识别,这意味着在模板中,您可以将附加到作用域的promise视为它们的结果值。
所以有人可以解释一下这种提琴无法正常工作的原因吗?不可能更改文本字段的值。但是分配保证$http服务返回作用域字段的工作就像一个超级按钮。
控制器:
function MyController($scope, $q, $timeout) { this.getItem = function () { var deferred = $q.defer(); deferred.resolve({ title: 'Some title' }); return deferred.promise; }; $scope.item = this.getItem(); }
HTML:
<input type="text" ng-model="item.title">
您需要在promise对象上使用then()函数:
this.getItem().then(function(result) { $scope.item = result; });
就您而言,我认为您不需要承诺。Angular的$watch系统将处理所有事情。只需在函数中返回一个对象,而不是原始类型:
this.getItem = function () { var item = {}; // do some async stuff $http.get(...).success(function(result) { item.title = result; }); return item; }; $scope.item = this.getItem();