[英]Using ng-model on a resolved promise in AngularJS (strange behavior)
這是我簡單的控制器和指令:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope, $q) {
var myObject = {
name: "Dingus",
favoriteFood: "Chicken",
};
var itemDeferred = $q.defer();
$scope.item = itemDeferred.promise;
var resolveIt = function() {
itemDeferred.resolve(myObject);
};
resolveIt();
}
myApp.directive('promised', function() {
return {
restrict: 'E',
scope: { boundModel: '=' },
template: '<input type="text" ng-model="boundModel">',
};
});
范圍項目是根據承諾解決的。 當我在HTML中使用ng-model
時,輸入為什么不更新項目,為什么指令甚至不讓我輸入?
有關工作示例,請參見此提琴: http : //jsfiddle.net/winduptoy/XmBxK/
我認為這是在發生什么事,就是每次您在輸入框中鍵入Angular的摘要循環時,都會檢查promise的結果並將myObject重新分配給$ scope.item。 這是避免這種情況的一種方法:
//$scope.item = itemDeferred.promise;
var promise = itemDeferred.promise;
promise.then(function(obj) {
alert('Success: ' + obj);
$scope.item = obj;
}, function(reason) {
alert('Failed: ' + reason);
});
小提琴 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.