大家都是angularjs开发人员,我已经关注了ng文档(link)。我已多次搜索但是我没有找到任何可以帮助我的解决方案。我需要在不重新加载控制器和模板的情况下更改路径。我写了一条如下所示的路线: -
$routeProvider
.when('/page1', {
templateUrl: 'page1',
controller: 'page1Ctrl',
caseInsensitiveMatch: true,
reloadOnSearch: false
})
.when('/page2', {
templateUrl: 'page2',
controller: 'page2Ctrl',
caseInsensitiveMatch: true,
reloadOnSearch: false
})
.when('/page3', {
templateUrl: 'page3',
controller: 'page3Ctrl',
caseInsensitiveMatch: true,
reloadOnSearch: false
}).otherwise({ redirectTo: '/index' });
此外,首先我转到page1然后page2然后page3之后我现在想要转到page1而不重新加载或调用page1Ctrl和page1模板。示例:假设当我是page1的那段时间我工作的时候我已经选择了一个ng-grid记录,它是分页大小3并且我输入了一些字段。之后我去了page3然后我再次进入page1。现在这次我想看看page1我选择的网格记录和我输入的内容。我怎么解决这个问题?感谢。
答案 0 :(得分:0)
我想建议使用Angular Ui.router
您将能够更改路线状态,更多信息请查看文档
答案 1 :(得分:0)
要在远离控制器然后再返回时保留数据,建议的Angular方法是使用服务。请参阅此NG-Conf演讲:https://www.youtube.com/watch?v=62RvRQuMVyg。
要在离开page1Ctrl然后返回时保留输入字段和分页索引,例如,您可以创建pagingModelService。
function PagingModelService($rootScope)
{
var pagingModelService = {};
////////////////////
// persisted data //
////////////////////
pagingModelService.pagingIndex;
pagingModelService.field1;
pagingModelService.field2;
////////
//Init//
////////
return(pagingModelService);
}
然后在控制器中注入服务,并将$ scope值设置为服务:
function Page1Ctrl($scope, pagingModelServiceModel)
{
///////////////////////////////////////////////////
//set local $scope variables to persisted service//
///////////////////////////////////////////////////
$scope.pageIndex = pagingModelService.pagingIndex;
$scope.field1 = pagingModelService.field1;
$scope.field2 = pagingModelService.field2;
}
此外,您可以查看角度本地存储以保留数据:https://github.com/grevory/angular-local-storage