单击链接两次以使用ui路由器激活状态

Click link twice to activate the state with ui router

本文关键字:ui 路由器 状态 激活 两次 链接 单击      更新时间:2023-09-26

最初,学年状态处于活动状态。

当我点击按钮激活学年。创建状态时,我必须执行两次此操作。只有这样,才会渲染"创建学年"视图。

我做错了什么?

索引.HTML

// navbar removed for brevity
<div ui-view="content" class="container body-content">
        CONTENT
</div>

app.js

'use strict';
angular
  .module('TGB', ['ui.router', 'ui.bootstrap'])
  .run(['$rootScope', '$state', '$stateParams',
    function ($rootScope, $state, $stateParams) {
        $rootScope.$state = $state;
        $rootScope.$stateParams = $stateParams;
    }
  ])
  .config(function ($stateProvider, $urlRouterProvider) {
      //localStorageServiceProvider.setPrefix('TGB');
      $urlRouterProvider.otherwise("schoolyears");
      $stateProvider
        .state('schoolyears', {
            url: '/schoolyears',
            views: {
                'content@': {
                    templateUrl: "/js/schoolyears/schoolyears.html",
                    controller: 'SchoolyearsController'
                }
            }
        })
        .state('schoolyears.selected', {
            url: '/:id'
        }) 
        .state('schoolyears.create', {
            url: '/create',
            views: {
                'content@': {
                    templateUrl: '/js/schoolyears/createSchoolyear.html',
                    controller: 'CreateSchoolyearController'
                }
            }
        })
  });

学年控制器.js

(function () {
    'use strict';
    angular
      .module('TGB')
      .controller('SchoolyearsController', SchoolyearsController);
    function SchoolyearsController($scope, $state) {
        $scope.schoolyears = []; 
    }
})();

创建学年控制器.js

(function () {
    'use strict';
    angular
      .module('TGB')
      .controller('CreateSchoolyearController', CreateSchoolyearController);
     function CreateSchoolyearController($scope, $state) {

    }
})();

我想说,这只是设置了一个状态,如下

    .state('schoolyears.create', {
        url: '/create',
        views: {
            'content@schoolyears': {
                templateUrl: '/js/schoolyears/createSchoolyear.html',
                controller: 'CreateSchoolyearController'
            }
        }
    })