我正在尝试在我的应用程序中使用ncy-breadcrumb,但我不知道如何解决某个特定情况。
首先,我有这两种状态:
{
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}}'
}
}
}
installationName
变量在InstallationEditController
中定义为适当的值,如下所示:
function activate() {
InstallationEditMainDataService.getInstallationMainData($stateParams.installationId)
.then(
function(response) {
$scope.installationName = response.data.name;
}
);
}
此时一切正常。让我们说 MY-INSTALLATION 会显示在我的HTML
中现在我有了一个新的状态,我想成为前一个的子状态,但这不是angular-ui-router配置中真正的父/子关系,所以我使用父属性。此状态定义如下:
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})'
}
}
此时,通过执行与上一个案例相同的过程,equipmentName
中的EquipmentGeneralViewController
被正确解析。让我们说equipmentName
已解决为 MY-EQUIPMENT
这个想法是ncy-breadcrumb显示以下内容: MY-INSTALLATION / MY-EQUIPMENT 但intallationName
此时尚未解决,因此只有 / MY-EQUIPMENT < / strong>显示。
我知道问题是什么,但我不知道如何解决它。在这种情况下,intallationName
未解决,因为此时未执行InstallationEditController
,因此intallationName
为空。
如何从子状态传递intallationName
的值?
谢谢。
答案 0 :(得分:0)
我通过使用$ rootScope而不是$ scope来设置这些特殊的面包屑变量来解决问题:
$rootScope.installationName = response.data.name;