警告:我剛開始使用客戶端腳本,Angular JS是我正在學習的第一個東西,現在我覺得我應該已經開始使用JavaScript了。 PS:我不想使用任何第三方庫。我想學習編碼。如何使用angular JS製作動態內容可編輯表格?
無論如何,我有動態表,我想使用HTML的content-editable = true屬性進行編輯。
問題:如何獲取編輯的數據?每當我點擊提交併將這個對象傳遞給check()函數。我不包含編輯的值。有沒有一種可能的方式來傳遞只有編輯過的值,如果它很髒。它具有分頁功能,因此如果g到下一頁,編輯後的值將消失。我知道我已經給每個td元素賦予了唯一的Id,並且與$ Index連接起來。但我不知道該如何繼續。
任何幫助或指導將不勝感激。我的路線中定義了控制器和其他控制器。
<div>
<form ng-submit="check(this)">
<table class="table table-striped table-hover">
<tbody>
<tr ng-repeat="data in currentItems">
<td contenteditable="true >{{data.EmpNo}}</td>
<td contenteditable="true">{{data.isActive}}</td>
<td contenteditable="true">{{data.balance}}</td>
<td contenteditable="true">{{data.age}}</td>
<td contenteditable="true">{{data.eyeColor}}</td>
<td contenteditable="true">{{data.fname}}</td>
</tr>
</tbody>
<tfoot>
<td>
<div class="pagination pull-right">
<li ng-class="{'disabled': previousPage}">
<a ng-click="previousPage()" >Previous</a>
</li>
<li ng-repeat="page in pageLengthArray track by $index">
<a ng-click="pagination($index)">{{$index+1}} </a>
</li>
<li disabled="disabled">
<a ng-click="nextPage()" ng-class="{'disabled':nextPage}>Next </a>
</li>
</div>
</td>
</tfoot>
</table>
<input type="submit" value="Submit">
</form>
$scope.currentPage=0;
$scope.pageSize=10;
$scope.currentItems;
$scope.tableData;
$http.get('../json/generated.json').then(function(response){
$scope.tableData=response.data;
$scope.pageLength=Math.ceil($scope.tableData.length/$scope.pageSize);
$scope.currentItems=$scope.tableData.slice($scope.currentPage,$scope.pageSize);
$scope.pageLengthArray= new Array($scope.pageLength);
});
$scope.pagination=function(currentPage){ $scope.currentItems=$scope.tableData.slice($scope.pageSize*currentPage,$scope.pageSize*currentPage+$scope.pageSize);
$scope.currentPage=currentPage;
}
$scope.nextPage=function nextPage(argument) {
$scope.currentPage++; $scope.currentItems=$scope.tableData.slice(($scope.pageSize*$scope.currentPage),($scope.pageSize*($scope.currentPage)+$scope.pageSize));
}
$scope.previousPage=function previousPage(argument) {
$scope.currentPage--;
$scope.currentItems=$scope.tableData.slice(($scope.pageSize*$scope.currentPage),($scope.pageSize*($scope.currentPage)+$scope.pageSize));
}
所以你想你'check'功能只接收已編輯的對象? – SuperVeetz
您可以使用'$ dirty'來檢查哪些數據發生了變化。 – ypp
是@SuperVeetz,但只要我可以獲得編輯的值以及一些表明它們已經從整個對象進行了編輯的關鍵字,我就可以使用編輯的字段並在數據庫中進行更新。謝謝 – Kid101