我正在使用 angularjs,我对 ng-model 更新有一点问题。
我有一个 $scope 对象,它在服务中加载了 ng-controller 之外的 ajax。
服务如下:
app.factory('myService', function($http) {
var myService = {
async: function(code) {
var promise = $http.get(url).then(function (response) {
return response.data;
});
return promise;
}
};
return myService;
});
这有效,并且我在 ng-controller 中的 $scope 对象已更新。
现在我需要更新并显示 html 页面中的输入文本中的值,该值具有我更新对象的 ng-model 属性,如下所示:
<input type="text" name="totalInvitations"
ng-model="invitation.totalInvitations" required smart-float/>
但是,当我执行 $scope.safeApply() 函数(我使用 safeApply 来防止“$digest 已经在进行中的错误”)时,ng-model 没有任何变化。
这是我的 ng 控制器:
function editInvitationCtrl(myService, $scope, $http) {
$scope.safeApply = function(fn) {
var phase = this.$root.$$phase;
if(phase == '$apply' || phase == '$digest') {
if(fn && (typeof(fn) === 'function')) {
fn();
console.log(phase);
}
} else {
console.log("apply");
this.$apply(fn);
}
};
myService.async($scope.code).then(function(d) {
$scope.invitation = d;
$scope.safeApply(function(){
console.log(JSON.stringify($scope.invitation));
});
});
我做错了什么?
我需要更新 ng-model 并显示值?
谢谢