从localstorage

时间:2018-01-05 13:27:37

标签: html angularjs

我正在尝试从本地存储中检索数据,然后将其显示给用户。 我想要发生的是用户能够从下拉菜单中选择一个名称(这部分工作),然后在屏幕上显示这些数据(我可以做这部分)。

选择用户的代码是 -

$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”,电子邮件和名称是对象内的变量。

1 个答案:

答案 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);
};