Diese Frage bezieht sich auf "How can I persist sibling ui-views when changing state" (plunker).persist Geschwister ui-Ansichten bei Zustandsänderung - UI-Router
Ich versuche eine Ansicht (Inhalt) unverändert zu lassen, wenn ich den Status in der Hauptnavigation ändere (mainNav).
Der Inhalt sollte nur durch die Subnavigation festgelegt werden und bleibt beim Ändern der Hauptnavigation erhalten.
Gibt es eine Möglichkeit, eine Ansicht in ui-Router zu bleiben, auch wenn der Zustand verlassen wird?
angular.module('MyApp', [
'ui.router'
])
.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('index', {
url: '/',
views: {
'@': {
templateUrl: 'layout.html'
},
'[email protected]': {
template: '<a ui-sref="Main3">Main3 - with sub</a><br />'
+ '<a ui-sref="Main4">Main4 - with sub</a>'
},
'[email protected]' : {
template: '<p>This is the sub navigation</p>'
},
'[email protected]': {
template: '<p>Content shared for MAINs</p>'
}
}
})
.state('Main3', {
parent: 'index',
url: '/Main3',
views: {
/*'mainNav': {
},*/
'subNav': {
template: '<a ui-sref="Main3.Sub1">Main3.Sub1</a><br />'
+ '<a ui-sref="Main3.Sub2">Main3.Sub2</a>'
}
}
})
.state('Main4', {
parent: 'index',
url: '/Main4',
views: {
'subNav': {
template: '<a ui-sref="Main4.Sub1">Main4.Sub1</a><br />'
+ '<a ui-sref="Main4.Sub2">Main4.Sub2</a>'
}
}
})
.state('Main3.Sub1', {
url: '/Sub1',
views: { '[email protected]': { template: 'Content of Main3.Sub1' } }
})
.state('Main3.Sub2', {
url: '/Sub2',
views: { '[email protected]': { template: 'Content of Main3.Sub2' } }
})
.state('Main4.Sub1', {
url: '/Sub1',
views: { '[email protected]': { template: 'Content of Main4.Sub1' } }
})
.state('Main4.Sub2', {
url: '/Sub2',
views: { '[email protected]': { template: 'Content of Main4.Sub2' } }
})
});
fand ich Persist state when changing to another state, aber es das Problem nicht vollständig lösen. Der Zustand ist beständig, aber es wird nicht in Betracht gezogen, eine konsistente Ansicht beizubehalten, wenn in einen anderen Zustand navigiert wird.
Edit scheint blockiert zu sein ... Ich vergaß eine Sache: die Begrenzung: auf diese Weise bedeutet, dass das Elternteil ein bisschen an sein Kind gebunden ist, da es einige Felder zur Verfügung gestellt und Kind muss einander bewusst sein, um nicht zu haben irgendein Konflikt. Eine gute Möglichkeit, dies zu lösen, wäre, dass jedes Kind seinen Zustand in einem $ scope.context speichert. – Walfrat