我有一个简单的 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);
},
这里我得到了所有卡片记录,并用二级数组连接,它的工作原理如下:
我想在 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 = [];
。
答案 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来存储数组,并在状态发生变化时通过在控制器中注入该服务/工厂来获取它。