$scope.inUserList = function(){
angular.forEach($scope.usernames, function(uname){
if (uname.name == $scope.username){
alert("WOOW");
return true;
}
});
return false;
};
Функция, которая требует это:Что не так с этим выражением AngularForEach?
$scope.addusername = function(){
if ($scope.username && !$scope.inUserList()){
$scope.usernames.push({name: $scope.username});
//$scope.usernames[$scope.usernames.length - 1] = serverList.save({command: 'addUser'}, $scope.usernames[$scope.usernames.length - 1]);
var currentUser = $scope.usernames[$scope.usernames.length - 1];
angular.toJson(currentUser);
$http.post('http://localhost:8080/server/todoList/addUser', currentUser)
.success(function(response) {})
.error(function(response) {alert("Failed to post");});
$scope.loggedIn = true;
}
if ($scope.username && $scope.inUserList()){
alert("Welcome back");
$scope.loggedIn = true;
}
else{
alert("Need a username");
}
};
Вот когда имя вводится в HTML:
<label> Log In:
<input type="text" ng-model="username">
<input type="submit" ng-click="addusername() ; ToDoView()">
</label>
В $ scope.usernames просто JSON объект с одним свойством "имя". Я никогда не смогу получить это выражение для оценки истины, и я не понимаю, почему. Мои имена точно такие же, как те, которые находятся в базе данных, но выражение по-прежнему оценивается как ложное.
У вас есть демоверсия, чтобы воспроизвести проблему? Другое примечание: return true внутри forEach не выйдет из цикла. – PSL
Нужно ли добавить перерыв; тогда? И я могу добавить больше функций, идущих на op – Ajv2324
if (uname == $ scope.username) { – HankScorpio