/ / Angular-breadcrumb: relacja label / parent - angularjs, angular-ui-router, ncybreadcrumb

Angular-breadcrumb: relacja label / parent - angularjs, angular-ui-router, ncybreadcrumb

Próbuję użyć ncy-breadcrumb w mojej aplikacji, ale nie wiem, jak rozwiązać jeden konkretny przypadek.

Przede wszystkim mam te 2 stany:

{
state: "installation-edit",
config: {
abstract: true,
url: "/installation-edit/{installationId}",
templateUrl: "app/installation/edit/installation.edit.html",
controller: "InstallationEditController",
title: "installation.edit.tab.title"
}
},
{
state: "installation-edit.detail",
config: {
url: "",
views: {
"maindata": {
templateUrl: "app/installation/edit/installation.edit.main.data.html",
controller: "InstallationEditMainDataController",
controllerAs: "vmInstMainData"
},
"equipments": {
templateUrl: "app/installation/edit/installation.edit.equipments.html",
controller: "InstallationEditEquipmentsController",
controllerAs: "vmInstEquipments"
},
"users": {
templateUrl: "app/installation/edit/installation.edit.users.html",
controller: "InstallationEditUsersController",
controllerAs: "vmInstUsers"
}
},
ncyBreadcrumb: {
label: "{{installationName}}"
}
}
}

The installationName zmienna jest zdefiniowana w InstallationEditController do odpowiedniej wartości, coś takiego:

function activate() {

InstallationEditMainDataService.getInstallationMainData($stateParams.installationId)
.then(
function(response) {
$scope.installationName = response.data.name;
}
);
}

W tym momencie wszystko działa doskonale. Powiedzmy MY-INSTALLATION jest wyświetlany w moim kodzie HTML

Teraz mam nowy stan, który chcę być dzieckiemod poprzedniego, ale nie jest to prawdziwa relacja rodzic / dziecko w konfiguracji kątowej-ui-routera, więc używam właściwości rodzica. Ten stan jest zdefiniowany następująco:

state: "equipment-general-view",
config: {
url: "/equipment-general-view/{equipmentId}",
templateUrl: "app/equipment/general-view/general.view.html",
controller: "EquipmentGeneralViewController",
controllerAs: "vmEquipmentGeneralView",
title: "equipment.general.view.tab.title",
ncyBreadcrumb: {
label: "{{equipmentName}}",
parent: "installation-edit.detail({installationId: 128032})"
}
}

W tym momencie equipmentName został poprawnie rozwiązany w EquipmentGeneralViewController postępując zgodnie z tym samym procesem, co poprzedni przypadek. Powiedzmy to equipmentName jest rozwiązany MY-SPRZĘT

Chodzi o to, że ncy-breadcrumb wyświetla następujące: MY-INSTALLATION / MY-EQUIPMENT ale intallationName nie jest rozwiązany w tym momencie, więc tylko / MY-SPRZĘT jest wyświetlany.

Wiem, jaki jest problem, ale nie wiem, jak go rozwiązać intallationName nie jest rozwiązany, ponieważ InstallationEditController w tej chwili nie jest wykonywane, więc intallationName jest pusty.

Jak mogę przekazać wartość intallationName ze stanu dziecka?

Dziękuję Ci.

Odpowiedzi:

0 dla odpowiedzi № 1

Rozwiązałem problem, używając $ rootScope zamiast $ scope, aby ustawić te specjalne zmienne breadcrumb:

$rootScope.installationName = response.data.name;