我正在尝试从本地存储中检索数据,然后将其显示给用户。 我想要发生的是用户能够从下拉菜单中选择一个名称(这部分工作),然后在屏幕上显示这些数据(我可以做这部分)。
选择用户的代码是 -
$scope.SelectedChanged = function() {
$scope.showBox = $scope.userSelected;
};
然后代码循环遍历用户数组,并获取正确的数据 -
$scope.LoadUserData = function() {
//console.log("Function run");
for (var i = 0; i < $localStorage.users.length; i++) {
//console.log("Function run");
var userTmp = $localStorage.users[i];
if (userTmp.name == $scope.userSelected) {
//PROBLEM IS HERE. ISNT ACCESSING USERSELECTED
console.log($scope.userSelected);
user = {
name: userTmp.name,
email: userTmp.email,
index: i
};
console.log(user);
}
}
};
当我测试它时,函数运行测试正常工作。所以我认为问题在于if语句,但我不确定为什么。有什么建议吗?
编辑 - 只是为了澄清,在本地存储中,用户被保存为对象名称“users”,电子邮件和名称是对象内的变量。
答案 0 :(得分:0)
您可以像我在上面的评论部分中建议的那样尝试类似下面的代码。另请查看此plunker链接以获取示例方案。
<强>模板:强>
<select ng-model="selectedUser" ng-options="usr.name as usr.name for usr in userList" ng-change="LoadUserData(selectedUser);"></select>
<强>控制器:强>
$scope.LoadUserData = function(selectedUser) {
var index = $scope.userList.map(function (usr) { return usr.name; }).indexOf(selectedUser);
$scope.activeUser = $scope.userList[index];
console.log($scope.activeUser);
};