2015-04-03 62 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

相關問題