2015-04-03 64 views
0

以下是我的问题here之后的问题。在投入方法之前从示波器获取数据

我有一个HTML页面

<body data-ng-controller="usersController"> 
<table class="table table-striped table-bordered table-hover"> 
      <thead> 
       <tr> 
        <th>#</th> 
        <th>ID</th> 
        <th>Username</th> 
        <th>Email</th> 
        <th>Registration Date</th> 
        <th>Action</th> 
       </tr> 
      </thead> 
      <tbody> 
       <tr data-ng-repeat="userData in users" > 
        <td><input type="checkbox"/></td> 
        <td>{{ userData._id }}</td> 
        <td>{{ userData.username }}</td> 
        <td>{{ userData.email }}</td> 
        <td>{{ userData.registrationDate }}</td> 
        <td> 

         <!-- Button trigger for Action modal --> 
         <button type="button" class="btn btn-primary btn-xs" data-toggle="modal" data-target="#actionModal{{$index}}" data-ng-click="Clear()"> 
         <span class="glyphicon glyphicon-cog"></span> 
         </button> 

         <!-- Action Modal --> 
         <div class="modal fade" id="actionModal{{$index}}" tabindex="-1" data-role="dialog"> 
          <div class="modal-dialog"> 
          <div class="modal-content"> 
           <form role="form"> 
            <div class="form-group"> 
             <div class="modal-header"> 
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
              <h4 class="modal-title">Users details for <strong>{{ userData.username }}</strong></h4> 
             </div> 
             <div class="modal-body"> 
              <fieldset> 
               <legend>User Details</legend> 
                <dl class="dl-horizontal"> 
                 <dt>User ID</dt> 
                 <dd>{{ userData._id }}</dd> 
                 <dt>User Login</dt> 
                 <dd><input type="text" class="form-control input-xs" data-ng-model="userData.username"></dd> 
                 <dt>User Email</dt> 
                 <dd><input type="text" class="form-control input-xs" data-ng-model="userData.email"></dd> 
                 <dt>Password</dt> 
                 <dd><input type="password" class="form-control input-xs" data-ng-model="userData.password"></dd> 
                 <dt>User Registration</dt> 
                 <dd>{{ userData.registrationDate }}</dd> 
                 <dt>Notes</dt> 
                 <dd><textarea class="form-control input-xs text-left" placeholder="Type some notes…" data-ng-model="userData.userNotes"></textarea></dd> 
                </dl> 
              </fieldset> 
              <fieldset> 
               <legend>Site Setting</legend> 
                <dl class="dl-horizontal"> 
                 <dt>Affiliate ID</dt> 
                 <dd><input type="text" class="form-control input-xs"></dd> 
                </dl> 
              </fieldset> 
             </div> 
            <div class="modal-footer"> 
             <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
             <button type="button" class="btn btn-primary" data-ng-click="updateUser(userData._id)">Save changes</button> 
            </div> 
            </div> 
           </form> 
          </div> 
          </div> 
         </div> 

               </td> 
       </tr> 
      </tbody> 
     </table> 

在下面的代码$ scope.userData是空的。

$scope.updateUser = function(id) { 
    var userData = $scope.userData; 
    $http.put('/api/users/' + id, userData) 
     .success(function(userData) { 
      console.log(userData); 
     }) 
     .error(function(data) { 
      console.log('Error: ' + data); 
     }); 
}; 

在操作列被打开用户的信息(通过使{{索引}}在显示在输入表格数据模态的每个操作按钮。我想从该模态更新用户的细节,但我不能够获得从表单数据:$ scope.userData是空

,因为我newbee :)

+1

应该只需要一个模式,用角UI模式,并通过'userData'到模态范围 – charlietfl 2015-04-03 15:19:16

+0

我在页面上有近4个模态 – ZeGregg 2015-04-03 15:34:24

+0

仍然只需要一个并将数据传递给模态范围,类似'

回答

0

下面是解决方案。

$ scope.users [id] return undefined。 $ scope.users返回对象的数组像

Object1 {_id: “551d468b53ac2cef3b000001”,用户名: “将要”,密码: “****”,邮件: “[email protected]” ...}, 对象2 {_id:...

然后我创建一个函数来读的内容获得通过ID好一个对象

$scope.updateUser = function(id) { 
    var userArray = $scope.users; 
    function search(id, array) { 
     for (var i=0; i<array.length; i++) { 
      if (array[i].id === id) { 
       return array[i] 
      }; 
     }; 
    }; 
    var userNewData = search(id, userArray); 
    $http.put('/api/users/' + id, userNewData) 
     .success(function(userData) { 
      console.log(userData._id); 
      console.log(userNewData); 
     }) 
     .error(function(data) { 
      console.log('Error: ' + data); 
     }); 
}; 
1

用户数据将是不可用的控制器控制范围和NG-重复范围任何帮助,将不胜感激是不同的。 ngRepeat从控制器作用域创建子作用域。

所以你必须从$ scope.users使用id或任何唯一的键或索引找出userData。

$scope.updateUser = function(id) { 
var userData = $scope.users[id]; 
$http.put('/api/users/' + id, userData) 
    .success(function(userData) { 
     console.log(userData); 
    }) 
    .error(function(data) { 
     console.log('Error: ' + data); 
    }); 
}; 
+0

$ scope.users [id]不起作用 – ZeGregg 2015-04-03 15:32:44

+0

请将data-ng-click =”updateUser(userData._id)“更改为data-ng-click =”updateUser($ index)“ – Samir 2015-04-03 15:36:38

+0

api/users/0 – ZeGregg 2015-04-03 15:50:28

相关问题