Wpis z mikrobloga

Mirki, mam problem i nie wiem jak go rozwiązać. Mam sobie takie factory, w którym trzymam listę userów.

app.factory('userFactory', function() {
usernames = [{
flag: 0, // 0 - not logged, 1 - logged
name: "John",
password: "1234"
},{
flag: 1, // logged
name: "Ted",
password: "1234"
},{
flag: 0, //not logged
name: "Admin",
password: "admin"
}]

return usernames;
});

oraz funkcję podpiętą do ng-click

$scope.userCheck = function (user) {
var userName = user.name;
var userPassword = user.password;
// var flag = usernames.flag;

for (var i=0; i<usernames.length; i++) {

if (userName == usernames[i].name && userPassword == usernames[i].password && usernames[i].flag != 1) {
var flag = 1;
console.log("Działa, nastepuje logowanie, nowa flaga to:", flag, "(zalogowany)");
}
else {
var flag = 0;
console.log("Nie dziala, jestes juz zalogowany lub dane logowania sa niepoprawne.");
}
}

return usernames;
};

w kontrolerze mam funkcję, która pobiera mi wartości z inputów i sprawdza czy zgadzają się z tymi w factory. Jeżeli wartości się zgadzają to ustawia mi flagę 1 (zalogowany). Jeżeli jakaś z wartości się nie zgadza to ustawia/zostawia flagę 0. No i mam sytuację, w której przy sprawdzaniu warunku w konsoli dostaję komunikat, że najpierw "działa" a później "nie działa". Zapewne błąd tkwi w moim if'ie, ale nie wiem co jest źle. Jakieś wskazówki?
#javascript #programowanie #angularjs
  • 3