Я просто настраиваю маршруты в своем угловом приложении. Первый взгляд, List
делает вызов HTTP, чтобы получить список презентаций
function ListController($scope, $http)
{
$scope.error = null;
$scope.presentations = null;
$scope.requesting = true;
$scope.currentTitle = '-1';
$data = {
'type' : 'presentations'
};
$http.post('resources/request.php', $data, {timeout:20000})
.success(function(data, status, headers, config)
{
$scope.requesting = false;
$scope.presentations = data;
})
.error(function(data, status, headers, config)
{
$scope.requesting = false;
log(status + ', data:" ' + data + '"');
}
}
);
}
Мой маршрут
angular.module('main',[]).
config(function($routeProvider) {
$routeProvider.
when('/', {controller:ListController, templateUrl:'resources/views/list.html'}).
when('/view/:id', {controller:VforumController, templateUrl:'resources/views/vforum.html'}).
otherwise({redirectTo:'/'});
});
проблема у меня есть то, когда я иду в #/view/:id
, а затем обратно в /
$http
вызова снова вызывается. Как я могу сделать это, чтобы он загружал только первый раз в приложение и ссылался на те же самые данные, которые были загружены в первый раз?
Я попытался создать переменную за пределами угловой и установить ее равной загруженным в первый раз. Затем в ListController
в основном делал if data is null, do the $http call else set $scope.data = data
, но это не сработало. Список был просто пустым. $scope.data
- это то, что строит мой список.
ли Вы, попробуйте передать '$ route' на ваш контроллер и проверите [' $ routeParams'] (http://docs.angularjs.org/api/ng.$routeParams) перед '$ http.post()'? Стоит сделать снимок. – couzzi
Я никогда не использовал '$ routeParams' раньше ... ну,' $ routes' вообще. Это мой первый раз. Я рассмотрю это, спасибо – Ronnie