ui.router не показывает страницу [вложенный вид]

0

Я знаю, что это хорошо спрошенный вопрос, но может быть, мои навыки "googleing" недостаточно хороши, чтобы получить от меня то, что я хочу.

Поэтому у меня есть страница с ng-view которая является основным index.html

<div class="row" style="margin-top: 70px;" ui-view></div>

Теперь у меня есть представление с шаблоном url student.html

<div class="col-md-10 col-md-offset-1" ng-controller="Controller_Parent">
<div ng-cloak>
    <md-tabs md-dynamic-height md-border-bottom>
        <md-tab label="View Profile" ui-view="student.profile">
        </md-tab>
        <md-tab label="View Results" ui-view="student.result">
        </md-tab>
        <md-tab label="View Attendance" ui-view="student.attendance">
        </md-tab>
    </md-tabs>
</div>
</div>

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

Код маршрутизации:

app.config(function($stateProvider, $urlRouterProvider) {    
    $urlRouterProvider.otherwise('/');
    $stateProvider
    .state('home', {
        url: '/',
        templateUrl: 'templates/login.html',
    }).state('student',{
        url:'/student',
        views:{
            '@':{
                templateUrl: 'templates/student.html',
            },
            'profile@student':{
                templateUrl:'templates/student/profile.html'
            },
        }
    });
});

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

Ожидание вашего ввода. С уважением!

PS: нет ошибок JS

  • 0
    Вы меняете свое состояние на student ? Кроме того, избегайте использования ng-controller внутри html.
  • 0
    Да. Это страница панели инструментов (student.html), поэтому она перенаправляется на студента через страницу входа.
Показать ещё 3 комментария
Теги:
angularjs-routing

2 ответа

1
Лучший ответ

Посмотрите на https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views#view-names---relative-vs-absolute-names. Кажется, что вы смешиваете имена имен, такие как student.profile с синтаксисом ссылок (viewname@statename). Поэтому попробуйте отказаться от student. в вашем шаблоне.

Также вы должны зарегистрировать свой контроллер в конфигурации состояния (возможно, с общим родительским состоянием) вместо шаблона напрямую...

  • 0
    Только что попробовал. Все еще не работает. Нужно ли вызывать $ state.transition или что-то в этом роде?
1

Я сделал jsfiddle, который похож на ваш код, и он работает. Главное отличие заключается в том, что вы не должны префикс вложенных представлений внутри директивы ui-view со student.

http://jsfiddle.net/irhabi/3ozfxmfx/

<md-tab label="View Profile" ui-view="profile"></md-tab>
<md-tab label="View Results" ui-view="result"></md-tab>
<md-tab label="View Attendance" ui-view="attendance"></md-tab>
  • 0
    Нет. @ajaegle сказал то же самое и до сих пор не работает. Нет просмотра или ошибки.
  • 0
    Добавьте это в свое приложение, если хотите увидеть ошибки в ui-router. .run (функция ($ rootScope, $ state, $ stateParams) {$ rootScope. $ on ('$ stateChangeError', console.log.bind (console));})
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню