避免在Angular.js的ng-repeat collection中添加重复项
avoid adding duplicating items in ng-repeat collection, in Angular.js
我有一个像这样的点击事件:
$scope.submitInfo = function myfunction() {
var itemToAdd = {
Id : generateUUID(),
Name: $scope.Name,
Email: $scope.Email,
Phone: $scope.Phone
};
$scope.Info.push(itemToAdd);
}
我的问题是,我想检查相同的ID
或Name
是否在$scope.Info
收集中不存在。
我纯粹专注于angular.js,我正在寻找这种场景的最佳解决方案
你可以使用$filter.
像这样:
$scope.submitInfo = function myfunction() {
var itemToAdd = {
Id : generateUUID(),
Name: $scope.Name,
Email: $scope.Email,
Phone: $scope.Phone
};
var foundElement = $filter('filter')($scope.Info, {Name: $scope.Name}, true);
if (foundElement.length === 0) {
$scope.Info.push(itemToAdd);
}
};
当然,你需要在你的controller/factory/whatever中注入$filter
试试这个-在你的提交函数中写下面的代码,即
$scope.submitInfo = function myfunction() {
var itemToAdd = {
Id : generateUUID(),
Name: $scope.Name,
Email: $scope.Email,
Phone: $scope.Phone
};
if(($scope.Info.indexOf(itemToAdd.id) != -1) || ($scope.Info.indexOf(itemToAdd.Name) != -1) {
$scope.Info.push(itemToAdd);
}
}
您可以使用本地Javascript过滤器(IE8不支持)来检查是否有具有该名称的元素:
var duplicates = $scope.Info.filter(function(item) {
return item.Name = $scope.Name;
});
var nameExists = duplicates.length > 0;
和你的完整方法:
$scope.submitInfo = function myfunction() {
var duplicates = $scope.Info.filter(function(item) {
return item.Id = $scope.Name;
});
var nameExists = duplicates.length > 0;
if (!nameExists) {
var itemToAdd = {
Id : generateUUID(),
Name: $scope.Name,
Email: $scope.Email,
Phone: $scope.Phone
};
$scope.Info.push(itemToAdd);
}
}
相关文章:
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何添加浮动和非浮动,其他
- 添加文字和评论功能更新Div
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 在函数中添加数组元素的数值
- 如何将歌曲添加到jPlayer
- 在html Select中添加搜索
- Java脚本时间添加
- FabricJs-限制主对象内添加对象的移动区域
- JQuery添加元素需要在我的js之前再次添加JQuery脚本
- 将Collection添加到meteor.js项目
- Lodash collection -在集合的现有对象中添加额外的自定义属性
- 避免在Angular.js的ng-repeat collection中添加重复项