サービスポータルのブレッドクラムウィジェットの操作Issue ブレッドクラムウィジェットの使い方を示す以下の例をご覧ください。このウィジェットは、Angularのイベントディスパッチシステムを使用しています。 ブレッドクラムウィジェットは、$rootscope をリッスンし、以下のシェーピングに従ってJSONオブジェクトをブロードキャストするウィジェットを待ちます。 [{label: "label to be displayed", url: "Link relative to the instance"}, {etc}] Angular のブロードキャストシステムの追加情報は、こちらをご覧ください。Angular Broadcast Documentation.Resolutionブレッドクラムの表示方法やビジネスケースのアーキテクチャに応じて、このプロセスは異なる場合があります。 この例では、インシデント、問題、リクエストなど、ユーザーに対して同じブレッドクラムリストが表示されています。 ホーム > マイスタッフ > テーブルラベル > レコード番号 ここで、「ホーム」はインデックス、「マイスタッフ」は自分のインシデント、リクエスト、問題、その他のタスク関連レコードの一覧を表示するカスタムページです。これらは参照可能です。 そこからインシデントを選択すると、チケットまたはリクエストの上部にあるブレッドクラムに、サンプルのブレッドクラムが表示されます。 この場合、sc_requests ページとチケットページには共通のウィジェット、チケット会話ウィジェットがあります。このウィジェットを選択すると、$scope.data をログに記録できます。これにより、ブレッドクラムリストで使用できるキーと値のペアが表示されます。 テーブルラベルとレコード番号が必要な場合は、それぞれ $scope.data.tableLabel と $scope.data.number を使用します。 ブレッドクラムリストで使用するデータを特定したら、チケット会話ウィジェットのクライアントスクリプトに以下のコードを追加します。 // Breadcrumbs var bc = [{label: 'My Stuff', url: '?id=myStuff'}]; // This would be the pagename, myStuff is an example 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 ブロードキャストのドキュメント