首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS - $scope在模式打开时不会更新

AngularJS - $scope在模式打开时不会更新
EN

Stack Overflow用户
提问于 2016-09-28 18:09:10
回答 1查看 414关注 0票数 0

我对AngularJS非常陌生。我有个简单的表格-

代码语言:javascript
复制
<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()。这是我的控制器:

代码语言:javascript
复制
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赋值,但结果是一样的。“显示名称”文本框在模式窗口中显示为空白。我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-09-28 20:08:12

你应该在更新值的时候使用$timeout,我认为应用周期可能没有运行。

做一些这样的事情

代码语言:javascript
复制
 }).success(function(data) {

   $timeout(function(){
       $scope.editprofile = {};
      $scope.editprofile.displayname  = "test";  // data.displayname                
      $rootScope.editprofile = true;
     })

 }).
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39744408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档