我有两个视图中使用的$ngController
。第一个视图的<table>
带ng-repeat
,列出了db中的所有数据。
我使用get($index)
从表格中获取所选对象,并将其设置为$scope
变量。
问题在于,当我无法在另一个视图上使用相同的$scope
变量时,因为它的值为undefined
。两个视图共享相同的ng-controller
。
我的问题是:重定向清理我的$ scope吗?我有什么方法可以在页面之间共享这些数据,因为我的应用程序不是单页吗?
我尝试的事情:
$rootScope
第一个视图 - 包含ng-repeat的表格
<table class="table table-striped">
<thead>
<tr>
<th>CNPJ</th>
<th>Razão Social</th>
<th>Ações</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="company in companies | filter:{companyName:searchString}">
<td> {{ company.cnpj }}</td>
<td> {{ company.companyName }}</td>
<td>
<a href="/admin/view-company" ng-click="setCompanyFromTable($index)" class="btn btn-primary btn-xs" role="button">Visualizar</a>
<button type="button" class="btn btn-warning btn-xs">Editar</button>
<button type="button" class="btn btn-danger btn-xs">Deletar</button>
</td>
</tr>
</tbody>
</table>
控制器
angular.module("distCad").controller("adminCtlr", function($scope, $http, config, $window, $cacheFactory){
$scope.searchTerm = null;
$scope.hideSearcAlert = true;
$scope.companies = [];
$scope.cache = $cacheFactory('companyCache');
$scope.expireLogin = function(){
localStorage.removeItem("type");
$window.location.href = "/";
}
$scope.getResults = function(){
$scope.searchTerm = true;
$http.get("/api/companies").then(
function successCallback(response){
$scope.companies = response.data;
},
function errorCallback(response){
console.log("aaaa" + response);
}
);
}
$scope.getCompany = function(){
return $scope.cache.get("company");
}
$scope.setCompanyFromTable = function(index){
$scope.cache.put("company", $scope.companies[index]);
}
});
目标视图 - 我正在测试的部分
<div class="container" ng-init="getCompany()">
<div class="row">
<div class="col-md-12">
<h2>Dados da empresa {{cache.get("company").companyName}}</h2>