在 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 注入您的控制器来获取它。
我有一个简单的 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 注入您的控制器来获取它。