サービスを使用してJSON配列を正常に取得しています。次に、そのデータをコントローラーに送り込み、ユーザーがユーザー名を入力したときにデータバインドされた値と比較しようとしていますが、ログを表示していません値が一致する必要があります。ここに私が持っているものがあります:
Angular サービス:
loginApp.factory('userData', function($http, $log) {
return {
getUsers: function(scb) {
$http({method: 'GET', url: 'somelink/ajax/current_users.php'}).
success(function(data, status, headers, config) {
$log.info(data, status, headers(), config);
scb(data);
}).
error(function(data, status, headers, config) {
$log.warn(data, status, headers(), config);
});
}
};
});
私のコントローラー:
loginApp.controller('loginController',
function loginController($scope, userData) {
// If I run a log on the `activeusers`
// I get the same console log as below
userData.getUsers(function(current_users) {
$scope.activeusers = current_users;
});
$scope.createAccnt = {
fname: "",
lname: "",
username: function(inValue) {
for (var i = 0; i < $scope.activeusers.length; i++) {
if ($scope.activeusers[i].username == inValue) {
console.log("Username matches existing!!");
}
}
},
email: ""
};
}
返された JSON 配列:
[
{
"user_id": "1",
"username": "userone",
"password": "",
"first_name": "",
"last_name": "",
"email": "",
"active": "",
"auth_token": ""
},
{
"user_id": "2",
"username": "usertwo",
"password": "",
"first_name": "",
"last_name": "",
"email": "",
"active": "",
"auth_token": ""
}
]
コンソールにステータス コード 200 が表示され、要求されたすべてのデータが次のように表示されます。
[Object, Object]
> 0
user_id: "1"
username: "userone"
password: ""
first_name: ""
last_name: ""
email: ""
active: "1"
auth_token: ""
__proto__: Object
> 1
user_id: "2"
username: "usertwo"
password: ""
first_name: ""
last_name: ""
email: ""
active: "1"
auth_token: ""
__proto__: Object
私のデータバインディングはすべて完全に機能しますが、比較だけです。for ループまたは if ステートメントが正しくありませんか?