Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不重新加载angularjs路由中的控制器和模板的情况下更改路由路径_Angularjs_Angularjs Routing - Fatal编程技术网

在不重新加载angularjs路由中的控制器和模板的情况下更改路由路径

在不重新加载angularjs路由中的控制器和模板的情况下更改路由路径,angularjs,angularjs-routing,Angularjs,Angularjs Routing,大家好,angularjs开发人员,我已经关注了ng文档()。我已经搜索了很多次,但是我没有找到任何能够正确帮助我的解决方案。我需要在不重新加载控制器和模板的情况下更改路由。我写了一条如下所示的路线:- $routeProvider .when('/page1', { templateUrl: 'page1', controller: 'page1Ctrl',

大家好,angularjs开发人员,我已经关注了ng文档()。我已经搜索了很多次,但是我没有找到任何能够正确帮助我的解决方案。我需要在不重新加载控制器和模板的情况下更改路由。我写了一条如下所示的路线:-

             $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。但我想从路线管理,而不创建服务或工厂。