Angularjs中的模型更新
以下是plnkr: 如果我添加两次信息,最新的数据是相同的,我如何防止模型更新Angularjs中的模型更新,angularjs,angular-ui-grid,Angularjs,Angular Ui Grid,以下是plnkr: 如果我添加两次信息,最新的数据是相同的,我如何防止模型更新 $scope.personList = []; $scope.newPerson = {}; $scope.columns = [{ field: 'Name' }, { field: 'Country' }]; $scope.gridOptions = { enableSorting: true, columnDefs: $scope.columns, onRegisterAp
$scope.personList = [];
$scope.newPerson = {};
$scope.columns = [{ field: 'Name' }, { field: 'Country' }];
$scope.gridOptions = {
enableSorting: true,
columnDefs: $scope.columns,
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
}
};
$scope.addPerson = function(){
$scope.personList.push($scope.newPerson);
}
$http.get('file.json')
.success(function(data) {
$scope.personList = data.records;
$scope.gridOptions.data = data.records;
console.log($scope.gridOptions.data);
});
使用
angular.copy()
进行复制,这样就不会每次都将对同一对象的引用推送到数组中
$scope.addPerson = function(){
var newPerson= angular.copy($scope.newPerson);
$scope.newPerson ={}; // reset to clear view
$scope.personList.push(newPerson);
}
使用
angular.copy()
进行复制,这样就不会每次都将对同一对象的引用推送到数组中
$scope.addPerson = function(){
var newPerson= angular.copy($scope.newPerson);
$scope.newPerson ={}; // reset to clear view
$scope.personList.push(newPerson);
}
我想这就是你想要做的 JS的变化
$scope.addPerson = function(){
$scope.personList.push(angular.copy($scope.newPerson)); //optional to use angular.copy()
$scope.newPerson={}; //reset the object rather than one field
}
我想这就是你想要做的 JS的变化
$scope.addPerson = function(){
$scope.personList.push(angular.copy($scope.newPerson)); //optional to use angular.copy()
$scope.newPerson={}; //reset the object rather than one field
}
您需要做的是,在推入列表之前,需要检查列表中项目的索引。如果索引>-1,则按下
$scope.addPerson = function(){
if($scope.personList.indexOf($scope.newPerson > -1){
$scope.personList.push($scope.newPerson);
}
}
您需要做的是,在推入列表之前,需要检查列表中项目的索引。如果索引>-1,则按下
$scope.addPerson = function(){
if($scope.personList.indexOf($scope.newPerson > -1){
$scope.personList.push($scope.newPerson);
}
}
这是一个带有: 您应添加此功能:
$scope.containsObject= function(obj, list) {
var i;
for (i = 0; i < list.length; i++) {
if (list[i] === obj) {
return true;
}
}
return false;
这是一个带有: 您应添加此功能:
$scope.containsObject= function(obj, list) {
var i;
for (i = 0; i < list.length; i++) {
if (list[i] === obj) {
return true;
}
}
return false;
谢谢你的快速回答谢谢你的快速回答