AngularJS - 当模态打开时,$ scope不会更新

时间:2016-09-28 10:09:10

标签: angularjs bootstrap-modal

我对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中分配值,比如$rootScope.editprofile.displayname = "test";,但结果是一样的。显示名称文本框在模态窗口中显示为空白。我在这里遗失了什么吗?

1 个答案:

答案 0 :(得分:0)

更新值时应该使用$ timeout,我认为应用循环可能没有运行。

做这样的事情

new eventer.Eventer()