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

时间:2016-05-23 06:44:54

标签: angularjs devextreme

我有一个简单的 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);
    },

这里我得到了所有卡片记录,并用二级数组连接,它的工作原理如下: enter image description here

但是,在我的位置改变后 - 数组为空: enter image description here

我想在 CardDetail.html 页面的 dx-treeview 中使用像 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。我在代码的标题处初始化了$scope.localArray = [];

3 个答案:

答案 0 :(得分:1)

使用$localStorage在填充时保存数组,如果状态更改,则检查本地存储中的值。如果本地存储中有值,则使用该值的值

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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