Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 - Fatal编程技术网

ANgularJS使用上一页的数据

ANgularJS使用上一页的数据,angularjs,Angularjs,有没有办法使用上一页的数据 我有两个页面:'/users'和'/users/:id' “/users”模板: <div ng-controller="userCtrl"> <div ng=repeat="(k,v) from data"> <span>{{v.name}}</span> <a ng-href="/users/{{k}}">View details</a> </div&

有没有办法使用上一页的数据

我有两个页面:'/users'和'/users/:id'

“/users”模板:

<div ng-controller="userCtrl">
   <div ng=repeat="(k,v) from data">
      <span>{{v.name}}</span>
      <a ng-href="/users/{{k}}">View details</a>
   </div>
</div>

{{v.name}
“/users/:id”页

<div ng-controller="userCtrl">
   <span>{{ data[currentId].name}}</span>

   <div>{{additional_data}}</div>
</div>




//Controller userCtrl
    $scope.currentId = $stateParams.id || false;
    $scope.data = {};

    $http.get('/users').then(function (response) {
        $scope.data = response;

        // returns
        // $scope.data[1] = {name: 'Alex'};
        // $scope.data[2] = {name: 'Masha'};
    }

    $scope.additional_data = 'Some data';

{{data[currentId].name}
{{附加数据}}
//控制器userCtrl
$scope.currentId=$stateParams.id | | false;
$scope.data={};
$http.get('/users')。然后(函数(响应){
$scope.data=响应;
//返回
//$scope.data[1]={name:'Alex'};
//$scope.data[2]={name:'Masha'};
}
$scope.additional_data='Some data';
单击“查看详细信息”按钮,我们将进入另一个带有其他模板的页面。但控制器是相同的


有没有办法保存数据而不再调用请求?只需在新页面上呈现旧数据?

您可以查看服务。当导航到网站的其他部分或刷新页面时,服务通常用于“保存”数据


是指向服务的angular文档的链接。基本上,您可以将服务注入控制器,并从一个页面将数据存储到服务中,然后在下一个页面从服务中获取数据并在该页面上使用。

您可以查看服务。当导航到服务的不同部分时,服务通常用于“保存”数据ebsite或刷新页面时

myApp.factory('CacheData', function{
  var scopeData=null;
  var setdata=function(data){
   scopeData=data;
  },
  var getdata=function(){
   return scopeData;
  }
});

//Controller file

 var data=CacheData.GetData(Data);
 if(data==null){
  //Write your code for getting data
  CacheData.SetData(Data); //set data for next call
 }
是指向服务的angular文档的链接。基本上,您将服务注入控制器,并从一个页面将数据存储到服务中,然后在下一个页面从服务获取数据并在该页面上使用

myApp.factory('CacheData', function{
  var scopeData=null;
  var setdata=function(data){
   scopeData=data;
  },
  var getdata=function(){
   return scopeData;
  }
});

//Controller file

 var data=CacheData.GetData(Data);
 if(data==null){
  //Write your code for getting data
  CacheData.SetData(Data); //set data for next call
 }
这里我创建了一个保存数据的服务。您可以使用SetData方法保存数据,并使用Getdata方法返回保存的数据


这里我创建了一个保存数据的服务。您可以使用SetData方法保存数据,并使用Getdata方法获取保存的数据。

我建议您使用

然后,您可以定义一个使用该控制器的父状态,并且两个子状态都可以访问该控制器的同一实例

大概是这样的:

这应该在配置块中

  $stateProvider
    .state( 'users', {
      abstract : true,
      controller : // yourController,
      template : '<div ui-view></div>'
    })
      .state( 'users.list', {
        templateUrl : // whatever,
        url : '/users',
      })
      .state( 'users.detail', {
        templateUrl : // whatever,
        url : 'users/:id'
      });
$stateProvider
.state('用户'{
摘要:没错,
控制员://yourController,
模板:“”
})
.state('users.list'{
templateUrl://随便什么,
url:“/users”,
})
.state('users.detail'{
templateUrl://随便什么,
url:'users/:id'
});

我建议您使用

然后,您可以定义一个使用该控制器的父状态,并且两个子状态都可以访问该控制器的同一实例

大概是这样的:

这应该在配置块中

  $stateProvider
    .state( 'users', {
      abstract : true,
      controller : // yourController,
      template : '<div ui-view></div>'
    })
      .state( 'users.list', {
        templateUrl : // whatever,
        url : '/users',
      })
      .state( 'users.detail', {
        templateUrl : // whatever,
        url : 'users/:id'
      });
$stateProvider
.state('用户'{
摘要:没错,
控制员://yourController,
模板:“”
})
.state('users.list'{
templateUrl://随便什么,
url:“/users”,
})
.state('users.detail'{
templateUrl://随便什么,
url:'users/:id'
});

我像你说的那样使用它。如何解决我的问题?我向你展示的是用ui路由器定义状态的方法。一旦你有了这个集合,你将拥有两个状态的相同控制器实例。我像你说的那样使用它。以及如何解决我的问题?我向你展示的是用ui路由器定义状态的方法。一次设置了该集合后,两种状态下的控制器实例将相同。