我有一个模块化的AngularJS1.5应用程序,模块化的意思是它曾经是一个单片前端,我把它分成不同的应用程序,每个应用程序在Kubernetes中运行。
从现在开始,它已被拆分,所有应用程序共享我已经打包到NPM中的公共和核心模块,并且它将被添加到Jenkins管道中的每个模块中。
所有应用程序共享相同的UX样式前端,包括它的导航窗格。现在,要在模块之间切换,用户只需转到导航窗格并单击所需的链接。
我想要做的是,如果用户已经在foo模块中说出并且想要导航到FOO1,它仍然在父FOO模块执行和sref导航中,但是如果它在FOO模块中并且想要去到BAR模块执行href。
为了更好地解释这一点,这是我目前的情况:
www.domain.com/foo
导航栏
|->FOO
|-->FOO1
|-->FOO2
|-->FOO3
|->BAR
|-->BAR1
|-->BAR2
|-->BAR3
这是我在navigation.provider.js
中的代码(function (angular) {
'use strict';
angular.module('xxxx.core.layout')
.provider('xxxx.core.layout.NavigationProvider', NavigationProvider);
NavigationProvider.$inject = [
'xxxx.core.states.StatesConstant',
'xxxx.core.auth.PermissionConstant',
'$windowProvider',
'$location',
'xxxx.core.auth.PermissionTypeConstant',
'xxxx.core.features.FeaturesConstant'
];
function NavigationProvider(StatesConstant, PermissionConstant, $windowProvider, $location, PermissionTypeConstant, FeaturesConstant) {
this.$get = Navigation;
function Navigation() {
var $window = $windowProvider.$get();
return [
text: 'FOO',
permission: [
PermissionConstant.XXXX,
PermissionConstant.XXXX_EDIT
].toString(),
permissionType: PermissionTypeConstant.AT_LEAST_ONE,
children: [
{
text: 'User Management',
//sref: StatesConstant.USER_MANAGEMENT_LIST,
href: $window.location.protocol + '//' + $window.location.hostname + '/foo/um/list',
permission: PermissionConstant.XXXX
},
{
text: 'Active Features',
//sref: StatesConstant.TOGGLE_ADMINISTRATOR,
href: $window.location.protocol + '//' + $window.location.hostname + '/foo/toggle',
permission: PermissionConstant.XXXX
},
{
text: 'Customer List',
//sref: StatesConstant.XXXX_LIST,
href: $window.location.protocol + '//' + $window.location.hostname + '/foo/customer-list',
permission: PermissionConstant.XXXX_EDIT
}
]
我想要实现的是,它是这样的:
let $location = $location.path();
if($location = "/foo"){
sref: StatesConstant.USER_MANAGEMENT_LIST,
}else{
href: $window.location.protocol + '//' + $window.location.hostname + '/foo/um/list',
}
任何帮助都会非常感激。
干杯!
答案 0 :(得分:0)
我在这里使用angular-ui-router和嵌套状态。
$form1= New-Object System.Windows.Forms.Form
$textBox1 = New-Object System.Windows.Forms.TextBox
$contextMenuStrip1 = New-Object System.Windows.Forms.ContextMenuStrip
$contextMenuStrip1.Items.Add("Item 1")
$contextMenuStrip1.Items.Add("Item 2")
$textBox1.ShortcutsEnabled = $false
$textBox1.ContextMenuStrip = $contextMenuStrip1
$form1.Text="Context Menu for TextBox"
$form1.Controls.Add($textBox1)
$form1.ShowDialog()
希望这就是你想要的!