Дочернее состояние Angular-ui-router с несколькими родительскими состояниями

Можно ли с помощью Angular-ui-router определить дочернее состояние, имеющее несколько родительских состояний:

$stateProvider
    .state("parent1", {
        url: '/',
        templateUrl: 'parent1.html'
    })
    .state('parent2', {
        url: '/parent2',
        templateUrl: 'parent2.html'
    })

    //Make accessible from every state parent-state
    .state("child", {
        url: 'child',
//TODO  parents: ['parent1', 'parent2']
        onEnter: function() {
            //do something;
        }
    })

Пример:

В вашем приложении Angular есть директива, которая используется несколько раз в разных состояниях вашего приложения. Сама директива включает ссылку, которая перенаправляет в другое состояние. В зависимости от того, где используется директива, она должна добавлять свое дочернее состояние к текущему активному родительскому состоянию.

Просто кажется неправильным определять состояния для каждой перестановки, например state1.child, state2.child и т. д. Должен быть лучший способ.


person Martin Golpashin    schedule 20.12.2015    source источник


Ответы (1)


Такая иерархия противоречила бы древовидной структуре DOM, которая по определению не допускает наличия нескольких родителей одного и того же элемента.

Кроме того, он подвержен ошибкам (и головной боли) и может легко привести к алмаз множественного наследования, как дочернее состояние в некоторых случаях наследовать от родительского состояния.

Похоже, что директива, а не состояние, будет лучшим решением для того, что вы ищете.

РЕДАКТИРОВАТЬ:

Только что увидел, что по этому поводу есть закрытая проблема, которая закрыта, потому что он пришел к тому же выводу (что директива лучше путь)

person Daniel    schedule 20.12.2015