ワークフローは、ランディングページからアラートの一覧を表形式で表示するようなものです。そのリストから私は、特定のアラートの詳細な情報を提供するアラート詳細ページに私を連れてくるアラートを選択します。そのアラート詳細状態内には、特定のタブでクリックされたときにそのアラートのさまざまな側面を表示するナビゲーションタブの形式のサブビューがあります。
AlertView.config.js:
$stateProvider.state({
name: "alert-details",
parent: "root",
abstract: true,
url: "/alert/details/:id",
params: {
// this will make both links /alert/details & /alert/details/ work
id: {squash: true, value: null}
},
data: {
pageTitle: "Alert Details"
},
views: {
"[email protected]": {
templateUrl: "components/alerts/alert-details/alert-details.html",
controller: "AlertDetailsController as vm"
},
"[email protected]": {
templateUrl: "components/alerts/alert-details/overview/overview.html",
controller: "AlertDetailsOverviewController as vm"
//@todo parent/child controller.
}
},
}).state({
name: "alert-details.overview",
parent: "alert-details",
url: "/overview",
params: {
// this will make both links /alert/details & /alert/details/ work
id: {squash: true, value: null}
},
data: {
pageTitle: "Alert Details"
},
views: {
"[email protected]": {
templateUrl: "components/alerts/alert-details/overview/overview.html",
controller: "AlertDetailsOverviewController as vm",
controllerAs: "vm"
}
}
}).state({
name: "alert-details.history",
parent: "alert-details",
url: "/history",
params: {
// this will make both links /alert/details & /alert/details/ work
id: {squash: true, value: null}
},
data: {
pageTitle: "Alert Details"
},
views: {
"[email protected]": {
templateUrl: "components/alerts/alert-details/history/history.html",
controller: "AlertDetailsHistoryController",
controllerAs: "vm"
}
}
}).state({
name: "alert-details.trigger",
parent: "alert-details",
url: "/trigger-events",
params: {
// this will make both links /alert/details & /alert/details/ work
id: {squash: true, value: null}
},
data: {
pageTitle: "Trigger Events"
},
views: {
"[email protected]": {
templateUrl: "components/alerts/alert-details/trigger-events/trigger-events.html",
controller: "AlertDetailsTriggerEventsController",
controllerAs: "vm"
}
}
}).state({
name: "alert-details.all-fields",
parent: "alert-details",
url: "/all-fields",
params: {
// this will make both links /alert/details & /alert/details/ work
id: {squash: true, value: null}
},
data: {
pageTitle: "All Alert Fields"
},
views: {
"[email protected]": {
templateUrl: "components/alerts/alert-details/all-fields/all-fields.html",
controller: "AlertDetailsAllAlertFieldsController",
controllerAs: "vm"
}
}
});
Page.config.js
$stateProvider.state({
name: "alert-view",
parent: "root",
url: "/alert/view?id&name&criteria&start&end&targets&sort",
data: {
pageTitle: "Alert View"
},
views: {
"[email protected]": {
templateUrl: "components/alerts/alert-view/alert-view.html",
controller: "AlertViewsController",
controllerAs: "vm"
}
}
アラートの詳細alertDetail.html
<button ng-click="vm.goBack()" class="btn btn-default"><i class="icon icon-long-arrow-left"></i><span translate>Back</span></button>
alertDetail.controller.js
vm.goBack = function() {
history.back();
};
私の目的は、いずれのサブビューにもかかわらず、戻るボタンをクリックすると、警告ビューページに移動するように、アラート詳細ページに戻るボタンを実装することです。私はそのためにhistory.back()を使ってみました。しかし、Alert Viewページに直接ルーティングするのではなく、以前のすべての状態を通過します。 必要なシナリオを実装するために、[アラートビュー]ページと[アラート詳細]ページの状態情報をどのように活用する必要がありますか。助けてください。
返信いただきありがとうございます!しかし、上記の解決方法では、ViewViewページに直接移動することはできません。私が間違っている場合は私を訂正してください。しかし、上記の解決策は、私が価値として渡す状態の前の状態に私を連れて行きます。 – user2128
アラートビューページで直接変更したい場合は、それに応じてデータを保存します。 –