AngularJS - HTML绑定无法正常工作

时间:2017-05-30 06:37:19

标签: angularjs angularjs-scope angular-routing

在我的角度应用程序中,有两个页面(列表和结帐)。在列表页面中,用户可以搜索项目并且将显示搜索到的项目,然后用户可以选择该项目并继续结账。
           从结帐页面,用户可以返回列表页面,此时列表页面中的所有项目应与之前的项目相同。 为了实现此功能,我的代码是

从列表页面移动到结帐页面时,所有范围数据都存储在服务中

returnsService.setScopeData($scope);

从结账页面返回到列表页面时,这些保存的数据将从服务中检索并分配给范围变量。

var restoreScopeData = returnsService.getScopeData();
if (restoreScopeData) {
        for (var key in restoreScopeData) {
           if (key.charAt(0) != '$') {
                  $scope[key] = restoreScopeData[key];
              }
         }
    }

这可以在一定程度上正常工作,我可以看到列表页面与我离开它的方式相同。 但问题是,现在我无法在列表页面中搜索新项目。

当搜索发生时,项目将填充到$scope.listSearch,并以html {{listSearch}}显示。 在错误的情况下, 我可以看到新的搜索数据被分配到$scope.listSearch,但HTML绑定没有发生。 我尝试在搜索分配后调用$scope.$apply(),但仍无效。

2 个答案:

答案 0 :(得分:0)

存储完整范围并不是一个好主意。您可以存储所需的变量。此外,您可以使用localStorage。 据我所知,打新电话不是一种选择,所以你可以尝试使用$ timeout。

$timeout(function() {
  $scope.listSearch = myValue;
});

答案 1 :(得分:0)

而不是这样做,你可以将本地存储或sessionStorage视为约翰所建议的。 您可以查看以下链接,例如

 https://www.codeproject.com/Articles/1015515/Working-With-Client-Side-Local-Storage