サービスポータルのブレッドクラムウィジェットの操作Issue ブレッドクラムウィジェットは、Angular のイベントディスパッチシステムを利用します。Angular のブロードキャストシステムに詳しくない場合は、「追加情報」セクションに記載されているドキュメントをお読みください。 動作を概要すると、ブレッドクラムウィジェットが $rootscope でリッスンして、ウィジェットが次の型に従って JSON オブジェクトをブロードキャストします。 [{label: "表示されるラベル", url: "インスタンスに対応するリンク"}, {etc}] 手順 手順は、ブレッドクラムの表示方法とビジネスケースのアーキテクチャに応じて異なります。この記事の目的は、ビジネスケースに沿って簡単に理解できるように例を示すことです。 ここで使用する例では、インシデント、問題、要求などで同じブレッドクラムをユーザーに表示します。 Home > My Stuff > テーブルラベル > レコード番号 ここで、[Home] はインデックス、[My Stuff] は、自分のインシデント、要求、問題、および表示可能なその他のタスク関連レコードのリストを表示するカスタムページです。そこからインシデントをクリックすると、チケット/要求の上部にあるブレッドクラムにこの例のブレッドクラムが表示されます。 この場合、sc_requests ページとチケットページに共通のウィジェットである「チケット会話」ウィジェットがあります。このウィジェットを Control + クリックすると、$scope.data をログに記録できます。これにより、ブレッドクラムで使用できるキーと値のペアが表示されます。 テーブルのラベルとレコード番号が必要なので、それぞれ $scope.data.tableLabel と $scope.data.number を使用します。 ブレッドクラムで使用するデータが用意できたので、チケット会話ウィジェットのクライアントスクリプトに以下を追加します。 // ブレッドクラムvar bc = [{label: 'My Stuff', url: '?id=myStuff'}]; // これがページ名になります、myStuff は一例ですif ($scope.data.tableLabel) bc[bc.length] = {label: $scope.data.tableLabel, url: '#'}; bc[bc.length] = {label: $scope.data.number, url: '#'}; $rootScope.$broadcast('sp.update.breadcrumbs', bc);} このコードでは、ブレッドクラムが消費を待機しているものに対して JSON をブロードキャストしています。ビジネスケースに合わせて JSON データを編集し、独自のブレッドクラムパスを作成できます。Related LinksAngular ブロードキャストのドキュメント