パンくずリスト 別タブページ遷移後 自動展開
オプション
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
04-15-2024 09:26 PM
パンくずリストのウィジェットが別タブでページ遷移したときに正しく表示されない。コードをどのように修正したらいいですか.
例えば以下のように"purot"を押してページ遷移したら、All categories,AAE,puroがパンくずリストから消えてしまいます。
1件の返信1
オプション
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
04-18-2024 07:15 AM
パンくずリストが消えてしまう原因は、その情報からは不明ですが、処理しているWidgetはわかります。
Widget "breadcrumbs" で パンくずリストを表示しています。そのソースコードのClient controllerを見てみると、表示だけしていて表示するデータは別の処理から"sp.update.breadcrumbs"のイベントとしてデータを受け取っています。
function($scope, $rootScope, spUtil) {
var c = this;
c.expanded = !spUtil.isMobile();
c.expand = function() {
c.expanded = true;
};
var deregister = $rootScope.$on("sp.update.breadcrumbs", function(e, list) {
c.breadcrumbs = list;
});
$scope.$on('$destroy', function(){
deregister();
});
}
別の処理例として"SC Category Page"のClient controllerでは以下のようになっています。
$scope.data.categories 変数に パンくずリストを格納しています。
function loadPage() {
$scope.hideItemWidget = !$scope.data.category_id;
if ($scope.data.category) {
if (!$scope.data.categories)
$scope.data.categories = [];
$scope.data.categories.forEach(function(category, index, categories) {
categories[index].url = category.url + '&catalog_id=' + $scope.data.catalog_id;
});
if ($scope.data.sc_catalog)
$scope.data.categories.unshift({label: $scope.data.sc_catalog, url: '?id=' + $scope.data.sc_category_page + '&catalog_id=' + $scope.data.catalog_id});
if ($scope.data.show_popular_item) {
if ($scope.data.all_catalog_msg)
$scope.data.categories.unshift({label: $scope.data.all_catalog_msg, url: '?id=' + $scope.data.sc_category_page + '&catalog_id=-1'});
else
$scope.data.categories.push({label: $scope.data.all_cat_msg, url: '#'});
} else {
if ($scope.data.all_catalog_msg)
$scope.data.categories.unshift({label: $scope.data.all_catalog_msg, url: '?id=' + $scope.data.sc_category_page + '&catalog_id=-1'});
$scope.data.categories.push({label: $scope.data.category.title, url: '#'});
}
$timeout(function() {
$rootScope.$broadcast('sp.update.breadcrumbs', $scope.data.categories);
});
spUtil.setSearchPage('sc');
spAriaUtil.sendLiveMessage($scope.data.category.title + ' ' + $scope.data.categorySelected);
i18n.getMessage("Category page {0}", function (template) {
$scope.data.categoryPageAriaLabel = i18n.format(template, $scope.data.category.title);
});
}
}