2017-04-21 60 views
0

嗨Im離子im中使用ng-repeat的角度..我想知道如何獲取名稱或id時ng-repeat的項目單擊.. Im使用sqlite獲取所有數據。確定ng-重複項目點擊時

function UserCtrl($scope, $cordovaSQLite, $location, $state, $cordovaDialogs, $cordovaPreferences) { 
     var vm = this; 

     $scope.data = {}; 
     $scope.selection = {catagory : null}; 
     var query = "SELECT * FROM listpeople"; 
     $cordovaSQLite.execute(db, query, []) 
      .then(function(res) { 
       if (res.rows.length > 0) { 

        var userName = _.map(res.rows, 'name'); 
        vm.names = userName; 

        console.log(userName) 


       } else { 
        console.log("No results found"); 
        console.log(res); 
       } 
      }, function(err) { 
       console.error(err); 
      }); 

} 

我的HTML

<ion-view title="Users" ng-controller="UserCtrl as vm"> 
    <ion-content class="has-header padding"> 
     <div class="list"> 
      <div class="item item-icon-right" ng-repeat="users in vm.names track by $index"> 
       {{users}} 
       <i class="icon ion-edit" ng-click = "vm.edit()"></i> 
      </div> 
     </div> 
    </ion-content> 
</ion-view> 
+0

這可能有助於 的http://計算器.COM /問題/ 31955930 /如何對檢索最點擊-elementid功能於angularjs –

回答

2

只是通過users作爲函數的參數

<i class="icon ion-edit" ng-click = "vm.edit(users)"></i> 

控制器:

vm.edit = function(users){ 
    console.log(users) 
} 
1

您可以:

  1. 通行證從HTML特定項目

HTML:

<div class="item item-icon-right" ng-repeat="users in vm.names track by $index"> 
    {{users}} 
    <i class="icon ion-edit" ng-click = "vm.edit(users)"></i> 
</div> 

JS:

function UserCtrl($scope, $cordovaSQLite, $location, $state, $cordovaDialogs, $cordovaPreferences) { 
      var vm = this; 
      var vm.edit = function(item){ 
       //update your item here 
      } 
      $scope.data = {}; 
      $scope.selection = {catagory : null}; 
      var query = "SELECT * FROM listpeople"; 
      $cordovaSQLite.execute(db, query, []) 
       .then(function(res) { 
        if (res.rows.length > 0) { 

         var userName = _.map(res.rows, 'name'); 
         vm.names = userName; 

         console.log(userName) 


        } else { 
         console.log("No results found"); 
         console.log(res); 
        } 
       }, function(err) { 
        console.error(err); 
       }); 

} 
  • 傳遞項的索引$index來自HTML
  • HTML:

    <div class="item item-icon-right" ng-repeat="users in vm.names track by $index"> 
        {{users}} 
        <i class="icon ion-edit" ng-click = "vm.edit($index)"></i> 
    </div> 
    

    JS:

    function UserCtrl($scope, $cordovaSQLite, $location, $state, $cordovaDialogs, $cordovaPreferences) { 
          var vm = this; 
          var vm.edit = function(index){ 
           var itemToUpdate = vm.names[index]; 
           //update your item here 
          } 
          $scope.data = {}; 
          $scope.selection = {catagory : null}; 
          var query = "SELECT * FROM listpeople"; 
          $cordovaSQLite.execute(db, query, []) 
           .then(function(res) { 
            if (res.rows.length > 0) { 
    
             var userName = _.map(res.rows, 'name'); 
             vm.names = userName; 
    
             console.log(userName) 
    
    
            } else { 
             console.log("No results found"); 
             console.log(res); 
            } 
           }, function(err) { 
            console.error(err); 
           }); 
    
    } 
    

    在這兩種情況下,你vm.names陣列將有更新的值,這個編輯點擊後