Это мой контроллер
//init
var init = function () {
$scope.getAlbumList();
};
$scope.getAlbumList = function () {
AlbumService.getAlbumList()
.then(function (data) {
$scope.albumList = data;
});
};
$scope.viewAlbum = function () {
AlbumService.getAlbum()
.then(function (data) {
$scope.album = data;
$location.path("/album");
});
};
init();
, а это мой routeProvider
when('/albums', {
templateUrl: 'WebApp/albums.html',
controller: 'AlbumController'
}).
when('/album', {
templateUrl: 'WebApp/albumview.html',
controller: 'AlbumController'
}).
Таким образом, AlbumController обрабатывает как альбомы, так и страницы просмотра альбомов.Когда создается контроллер, вызывается функция init
, которая, в свою очередь, вызывает функцию getAlbumList
.
Проблема заключается в том, что контроллер создается снова, когда пользователь щелкает альбом, чтобы перейти на страницу просмотра альбома.,Это завершает выполнение функции init снова, что, в свою очередь, вызывает нежелательный второй вызов getAlbumList.
Так что, в принципе, мне нужно вызвать getAlbumList при создании контроллера для «/ album», но не «/ albumview».
Как мне этого добиться?Очевидно, я мог бы решить эту проблему, создав второй контроллер для /albumview
, но это кажется ненужным, и я бы предпочел, чтобы все, что касается альбомов, было на одном контроллере.