रीफ्रेश तक व्यवस्थापक डेटा दिखाता है, मैं व्यवस्थापक और उपयोगकर्ता के लिए समान नियंत्रक के साथ एनजी-टेबल का उपयोग कर रहा हूं, वही दृश्य लेकिन अलग-अलग यूआरएल के साथ डेटा लोड किया गया है, लेकिन कैश से डेटा प्राप्त करते समय यह कैश से डेटा पुनः लोड करता है, (जिसे मैं चाहता हूं स्पष्ट उपयोगकर्ता लॉग आउट जब)मैं विभिन्न स्रोतों के साथ व्यवस्थापक और उपयोगकर्ता दोनों के लिए एनजी-टेबल का उपयोग कर रहा हूं।
नियंत्रक
myApp.controller('listArticle', ['$scope', '$filter', 'ngTableParams', 'nameService', '$rootScope', '$location', '$timeout', '$cookieStore', 'flashService', '$templateCache',
function ($scope, $filter, ngTableParams, nameService, $rootScope, $location, $timeout, $cookieStore, flashService, $templateCache)
{
//$templateCache.removeAll();
$scope.success = {};
$scope.article = {};
$scope.article.edit = '-';
$scope.article.approve = '-';
$scope.article.view = 'view';
$scope.showAlert = true;
flashService.displayAlertMessages();
$scope.tableParams = new ngTableParams(
{
page: 1, // show first page
count: 10, // count per page
sorting: {name: 'asc'}
},
{
total: 0, // length of data
getData: function ($defer, params)
{
nameService.getData($defer, params, $scope.filter);
},
counts: [],
paginationMaxBlocks: 13
});
$scope.$watch("filter.$", function()
{
$scope.tableParams.reload();
});
}]);
सेवा
myApp.service("nameService",['$http','$filter','$cookieStore', '$rootScope', function($http, $filter, $cookieStore, $rootScope){
function filterData(data, filter)
{
return $filter('filter')(data, filter);
}
function orderData(data, params)
{
return params.sorting() ? $filter('orderBy')(data, params.orderBy()) : filteredData;
}
function sliceData(data, params)
{
return data.slice((params.page() - 1) * params.count(), params.page() * params.count());
}
function transformData(data,filter,params)
{
return sliceData(orderData(filterData(data,filter), params), params);
}
var service =
{
cachedData:[],
getData:function($defer, params, filter)
{
if(service.cachedData.length>0)
{
var filteredData = filterData(service.cachedData,filter);
transformedData = sliceData(orderData(filteredData,params),params);
params.total(filteredData.length);
$defer.resolve(transformedData);
}
else
{
var id = $cookieStore.get('userId');
if($rootScope.role == 1)
{
var url = "article/serverside/fetch-pending-list.php";
var data = "";
}
else
{
var url = "article/serverside/fetch-list.php";
var data = {id:id};
}
$http.post(url,data)
.success(function(resp)
{
var i=0;
for(i=0; i<resp.length; i++)
{
resp[i].status = parseInt(resp[i].status);
resp[i].category = parseInt(resp[i].category);
if($rootScope.role > 1)
resp[i].edit = (resp[i].status == 1)?"Edit":"";
else{
resp[i].approve = (resp[i].status == "2")?"Approve/Reject":"";
}
var j=0;
var k=0;
for(j=0;j<statusList.length;j++){
if(statusList[j]['id'] == resp[i].status)
resp[i].status = statusList[j]['title'];
}
for(k=0;k<categories.length;k++){
if(categories[k]['id'] == resp[i].category)
resp[i].category = categories[k]['title'];
}
}
angular.copy(resp,service.cachedData);
params.total(resp.length);
var filteredData = $filter('filter')(resp, filter);
transformedData = transformData(resp,filter,params);
$defer.resolve(transformedData);
});
}
}
};
return service;
}]);
नोटif(service.cachedData.length>0)
यह जगह एक ही डेटा दोनों पर लोड की तरह logins.Also, मैं डेटा का एक रूप को बचाने और एनजी-मेज पर सूची अपडेट नहीं होने पर पुन: निर्देशित हैं, क्योंकि यह नहीं कैश स्रोत से से डेटा लोड करता है।
आप अपने डेटा स्रोत यूआरएल में पैरामीटर के रूप में उपयोगकर्ता लॉगिन क्यों नहीं जोड़ते हैं, 'getdata.php? Login = blabla' के रूप में? – skobaljic
मैं अपना यूआरएल ऐसा नहीं करना चाहता हूं। अगर एनजी-टेबल है तो इन कैशों को साफ़ करने के लिए कुछ होना चाहिए और मैं सोच रहा हूं कि वह क्या है? – Abel