比较服务中的JSON与AngularJS中的数据绑定值
使用一个服务,我成功地检索了一个JSON数组,然后我将该数据泵入我的控制器,并尝试在用户输入他们想要的用户名时与数据绑定值进行比较,但我没有在值匹配时显示日志。以下是我所拥有的: 角度服务:比较服务中的JSON与AngularJS中的数据绑定值,angularjs,Angularjs,使用一个服务,我成功地检索了一个JSON数组,然后我将该数据泵入我的控制器,并尝试在用户输入他们想要的用户名时与数据绑定值进行比较,但我没有在值匹配时显示日志。以下是我所拥有的: 角度服务: loginApp.factory('userData',函数($http,$log){ 返回{ getUsers:函数(scb){ $http({method'GET',url'somelink/ajax/current_users.php})。 成功(函数(数据、状态、标题、配置){ $log.info(
loginApp.factory('userData',函数($http,$log){
返回{
getUsers:函数(scb){
$http({method'GET',url'somelink/ajax/current_users.php})。
成功(函数(数据、状态、标题、配置){
$log.info(数据、状态、标题()、配置);
scb(数据);
}).
错误(函数(数据、状态、标题、配置){
$log.warn(数据、状态、标题()、配置);
});
}
};
});
我的控制器:
loginApp.controller('loginController',
函数loginController($scope,userData){
//如果我在“activeusers”上运行日志
//我得到与下面相同的控制台日志
getUsers(函数(当前用户){
$scope.activeusers=当前用户;
});
$scope.createAccnt={
fname:“”,
名称:“,
用户名:函数(无效){
对于(变量i=0;i<$scope.activeusers.length;i++){
if($scope.activeusers[i].username==inValue){
log(“用户名匹配现有!!”;
}
}
},
电子邮件:“
};
}
返回的JSON数组:
[
{
“用户id”:“1”,
“用户名”:“userone”,
“密码”:“,
“名字”:“,
“姓氏”:“,
“电子邮件”:“,
“主动”:“主动”,
“身份验证令牌”:”
},
{
“用户id”:“2”,
“用户名”:“usertwo”,
“密码”:“,
“名字”:“,
“姓氏”:“,
“电子邮件”:“,
“主动”:“主动”,
“身份验证令牌”:”
}
]
Console显示的状态代码为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语句是否不正确?如果我不理解您的问题,很抱歉,但应该这样做
for (var i = 0; i < $scope.createAccount.length; i++) {
if ($scope.createAccount[i].username == inValue) {
console.log("Username matches existing!!");
}
}
for(变量i=0;i<$scope.createAccount.length;i++){
如果($scope.createAccount[i].username==inValue){
log(“用户名匹配现有!!”;
}
}
真是
for (var i = 0; i < $scope.activeusers .length; i++) {
if ($scope.activeusers [i].username == inValue) {
console.log("Username matches existing!!");
}
}
for(var i=0;i<$scope.activeusers.length;i++){
如果($scope.activeusers[i].username==inValue){
log(“用户名匹配现有!!”;
}
}
将createAccount替换为activeusers是的,应该感谢您,我很抱歉,我已经修复了,但仍然没有收到匹配的日志消息。似乎您的代码缺少一部分。是什么触发了createAccnt.userName()?这就是我的问题所在,当时我正试图快速设置我放置的绑定
createAccnt.userName()
在输入标记的name属性中。现在我在ng绑定中将它作为一个值,并且控制台抛出一个“无法从未定义中获取值长度”。我将对此进行研究。我将把这个答案标记为已接受。谢谢