我的服务看起来如下:
var chatServices = angular.module('chatServices', ['ngResource']);
chatServices.factory('Chat',['$resource',
function($resource){
return $resource('sample-chat-data.json', {}, {
query: {method:'GET', params:{}, isArray:true}
});
}
]);
我有两个控制器,一个用于主控制器,一个用于详细视图:
chatListApp.controller('ChatItemsController', ['$scope', 'Chat', "$location",
function ($scope, Chat, $location) {
$scope.chatitems = Chat.query();
$scope.detailPage = function (hash) {
$location.path(hash);
}
}]);
chatListApp.controller('ChatDetailController', ['$scope', "$routeParams", "Chat",
function ($scope, $routeParams, Chat) {
$scope.chatID = $routeParams.chatID;
$scope.chatitems = Chat.query(function() {
for (var i = 0; i < $scope.chatitems.length; i++) {
if ($scope.chatitems[i].id === $scope.chatID) {
$scope.chat = $scope.chatitems[i];
break;
}
};
});
}]);
我觉得我的代码远非最佳,原因是我做了两次相同的查询。有一种聪明的方法吗?我可以以某种方式将我的服务结果保存/缓存到变量吗?
您可以在那里看到完整代码和SPA的在线工作示例:https://github.com/gkatsanos/angular-demo
答案 0 :(得分:0)
开启缓存
chatServices.factory('Chat',['$resource',
function($resource){
return $resource('sample-chat-data.json', {}, {
query: {method:'GET', params:{}, isArray:true,cache : true}
});
}
]);