我对AngularJS非常陌生。我有个简单的表格-
<div ng-controller="editProfileController" class="modal" id="editprofile" modal="editprofile">
<form method="post" action="" id="cropimage" name="editfrm" enctype="multipart/form-data" >
<div class="form-group">
<div class="input-group">
<span class="input-group-addon theme-label input-social" id="basic-addon1">Display Name</span>
<input type="text" class="form-control theme-text custom-url" ng-model="editprofile.displayname" name="displayname" id="displayname" required="" /> =====@{{editprofile.displayname}}
</div>
<span class="error" ng-show="submitted && editfrm.displayname.$error.required">This is required field</span>
</div>
</form>
</div>
<a href="#" ng-controller="editProfileController" ng-click="getprofileinfo()" class="editbtn link" data-toggle="modal" >
<span>Edit Profile</span>
</a>编辑配置文件链接将从控制器调用函数getprofileinfo()。这是我的控制器:
mainApp.controller("editProfileController", function($scope,$rootScope, $http) {
$scope.getprofileinfo = function(editprofile) {
$http({
url: "profile/geteditdata",
method: 'GET',
headers : {'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'}
}).success(function(data) {
$scope.editprofile = {};
$scope.editprofile.displayname = "test"; // data.displayname
$rootScope.editprofile = true;
}).error(function(err) {
"ERR", console.log(err)})
}在控制器中,$rootScope.editprofile = true;打开了模式框,但是我分配给editprofile.displayname的值没有更新。我也尝试过像$rootScope.editprofile.displayname = "test";一样从rootScope赋值,但结果是一样的。“显示名称”文本框在模式窗口中显示为空白。我是不是漏掉了什么?
发布于 2016-09-28 20:08:12
你应该在更新值的时候使用$timeout,我认为应用周期可能没有运行。
做一些这样的事情
}).success(function(data) {
$timeout(function(){
$scope.editprofile = {};
$scope.editprofile.displayname = "test"; // data.displayname
$rootScope.editprofile = true;
})
}).https://stackoverflow.com/questions/39744408
复制相似问题