我点击这样的事件:
$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非常感兴趣,我正在寻找这种场景的最佳解决方案
答案 0 :(得分:0)
您可以使用$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);
}
};
当然,您需要在控制器/工厂/无论什么
中注入$ filter答案 1 :(得分:0)
试试这个 - 在你的提交函数里面写下代码,即
$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);
}
}
答案 2 :(得分:0)
您可以使用本机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);
}
}