在 AngularJs 应用程序中更改位置时如何保存我的数据?

How I can save my data when location changed in AngularJs app?

我有一个简单的 AngularJs 应用程序,在 HomePage.html 我有一个 dx-datagrid 与所有数据,到 onSelectionChanged 方法我添加了下一个代码:

onSelectionChanged: function (e) {
        $scope.itemIdFromShowButton = e.selectedRowsData[0].id;
        $scope.cardSelectedArray = e.selectedRowsData[0];
        $scope.allRecordsOfCard= businessLogicOfMyApp.getVardsRecordsByCardId($scope.itemIdFromShowButton, $scope.recordsArray);
        $scope.localArray = $scope.chaptersArray.concat($scope.jdskla);
        console.log($scope.localArray);
    },

在这里我得到了卡片的所有记录,并将它与辅助数组连接起来,它有效:

但是,在我的位置更改后 - 数组为空:

我想在我的 dx-treeview 和我的 [=45] 中使用像 dataSource 这样的数组=]页。

myApp.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', {
    templateUrl: "Partials/HomePartial.html",
    controller: "defaultController"
})
.when('/createnewcard', {
    templateUrl: "Partials/CreateNewCard.html",
    controller: "defaultController"
})
.when('/carddetail/:cardId', {
    templateUrl: "Partials/CardDetails.html",
    controller: "defaultController"
})
.when('/createnewrecord/:cardId', {
    templateUrl: "Partials/CreateNewRecordToCard.html",
    controller: "defaultController"
})
  ;

$routeProvider.otherwise({ redirectTo: '/' });
}]);

可能有人知道如何保存我的数据?感谢您的回答!

P.S。我在代码的 header 处初始化了 $scope.localArray = [];

发生这种情况是因为正在为每个模板实例化您的控制器。不要在你的路由提供者中写 controller: "defaultController",而是在 html 页面中创建一个 div,你将在其中加载你的视图并在 div 中写 ng-controller="defaultController"。示例:

<div ng-contoller="defaultController"> 
<!-- other part of your code -->
<div ng-view> </div>
</div>

使用 $localStorage 在填充数组时保存您的数组,如果状态发生变化,请检查本地存储中的值。如果本地存储中有值,则使用该值作为数组值

您可以使用 localstorage 或 angular services/factory 来存储您的数组,并在状态发生变化时通过将 service/factory 注入您的控制器来获取它。