在不重新加载angularjs路由中的控制器和模板的情况下更改路由路径
大家好,angularjs开发人员,我已经关注了ng文档()。我已经搜索了很多次,但是我没有找到任何能够正确帮助我的解决方案。我需要在不重新加载控制器和模板的情况下更改路由。我写了一条如下所示的路线:-在不重新加载angularjs路由中的控制器和模板的情况下更改路由路径,angularjs,angularjs-routing,Angularjs,Angularjs Routing,大家好,angularjs开发人员,我已经关注了ng文档()。我已经搜索了很多次,但是我没有找到任何能够正确帮助我的解决方案。我需要在不重新加载控制器和模板的情况下更改路由。我写了一条如下所示的路线:- $routeProvider .when('/page1', { templateUrl: 'page1', controller: 'page1Ctrl',
$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' });
此外,首先我转到第1页,然后是第2页,然后是第3页,之后我想转到第1页,而不必重新加载或调用page1Ctrl和page1模板。示例:假设当我在page1时,我做了一些事情,比如我选择了一个ng网格记录,页面大小为3,并且我输入了一些字段。然后我转到第3页,然后再转到第1页。现在这一次,我想看看页面1我选择了什么ng网格记录和我输入了什么。我怎样才能解决这个问题?谢谢。我想建议您使用角度传感器
您将能够更改路由的状态,有关更多信息,请查看文档以在离开控制器后再返回时保留数据,建议使用服务。请参阅以下对话: 例如,要在离开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;
}
此外,您还可以查看用于持久化数据的角度本地存储:谢谢@Narek Mamikonyan。我试试这个。但是你有这类工作的例子吗?如果你检查一下文档,我想你会发现:)好的@Narek Mamikonyan。嗨@Narek Mamikonyan,我没有看到任何对我有帮助的信息。有一个“绝对路线(^)”。这条绝对路线行不通。谢谢你的好主意@Scott Rice。但我想从路线管理,而不创建服务或工厂。