Angularjs状态保留
我正在使用angularjs动态添加行。但问题是,我希望在整个应用程序中保持这种状态。例如,在视图1中,我将一个动态行添加到表中,并从视图2移动到视图2,添加的行应该可用。那么,有没有任何方法可以在angularjs中保留视图的状态呢。以下是我用来动态添加行的代码:Angularjs状态保留,angularjs,state,Angularjs,State,我正在使用angularjs动态添加行。但问题是,我希望在整个应用程序中保持这种状态。例如,在视图1中,我将一个动态行添加到表中,并从视图2移动到视图2,添加的行应该可用。那么,有没有任何方法可以在angularjs中保留视图的状态呢。以下是我用来动态添加行的代码: angular.module('MyApp', []) .controller('MainController', [ '$scope', function($scope) { $scope.rows = ['Row 1'];
angular.module('MyApp', [])
.controller('MainController', [ '$scope', function($scope) {
$scope.rows = ['Row 1'];
$scope.counter = 2;
$scope.addRow = function() {
$scope.rows.push('Row ' + $scope.counter);
$scope.counter++;
}
}]);
<body ng-controller="MainController">
<a href="#" class="button" ng-click="addRow()">Add Row {{counter}}</a>
<table>
<thead>
<tr>
<th width="200">Some Header</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rowContent in rows">
<td>{{rowContent}}</td>
</tr>
</tbody>
</table>
</body>
angular.module('MyApp',[])
.controller('MainController',['$scope',函数($scope){
$scope.rows=['Row 1'];
$scope.counter=2;
$scope.addRow=函数(){
$scope.rows.push('Row'+$scope.counter);
$scope.counter++;
}
}]);
某个标题
{{rowContent}}
谢谢 是的。您应该将用于构建表的模型(以及新行)保存到服务中。然后将该服务注入控制器中 不过,能够看到一点代码会很好。但这里有一个如何做到这一点的例子: 免责声明 未经测试的示例
angular.module('yourapp').factory('MySharedService',function(){
var myTableModel = [];
function addRow(row){
myTableModel.push(row);
return myTableModel;
}
return {
addRow: addRow,
tableModel: myTableModel
}
})
.controller('MyFirstController',['$scope','MySharedService',function($scope,
MySharedService){
$scope.tableModel = MySharedService.tableModel;
$scope.addRow = function(row){
$scope.tableModel = MySharedService.addRow(row);
}
}]).controller('MySecondController',['$scope','MySharedService',function($scope,
MySharedService){...}]);
编辑:
在进一步研究这个问题之后,我发现了一个类似的问题,有几种实现方法和示例代码
查看它是否对您有帮助。持久状态应存储在服务器上。页面的任何刷新都将丢失存储在JavaScript应用程序内存中的所有内容。使用服务共享信息抛出您的视图(控制器)@ThomasNDS,因为我是angularjs的新手。请给我举个例子。我使用的是spring mvc框架,前端为angularjs。感谢您的快速响应,我已经更新了我的问题。你的意思是说我需要在view-2上调用此服务。好的。您应该在第二个视图上使用MySharedService.tableModel值分配$scope.tableModel。通过这种方式,您可以完成的是,第一个控制器和第二个控制器上的$scope.tableModel都由共享源分配。过去我已经讨论过这个问题,但他们希望在选项卡之间保留视图,而现在我正在spring mvcOh中更改控制器,所以您在更改视图时正在重新加载整个页面?是的,如果我们调用另一个控制器,默认情况下会在spring中重新加载页面