URL-параметры Angularjs передаются как параметры запроса

Я настроил состояние $ как показано ниже:

.state('app.subjects.current', {
    abstract: true,
    url: "/:subjectId",
    template: "<div ui-view />",
    ncyBreadcrumb: {
        skip: true
    }
})
.state('app.subjects.current.home', {
    url: '/home',
    templateUrl: "assets/src/subject/subjectHome.html",
    resolve: loadSequence('subjectHomeCtrl'),
    ncyBreadcrumb: {
        label: 'View'
    },
    string: 'sidebar.nav.pages.SUBJECTHOME'
})

Я перехожу в это состояние, используя $state.go('app.subjects.current.home', {subjectId: '999'});

URL-адрес отображается в адресной строке как " http://localhost:12253/#/app/subject //home? SubjectId=999". На самом деле это должен был быть " http://localhost:12253/".

Спасибо за любую помощь.

1 ответ

Решение

Я создал рабочий пример с точно таким же отображением - чтобы показать вам, что ваш подход работает

Итак, это государства

    .state('app', {
      template: '<div ui-view=""></div>',
    })
    .state('app.subjects', {
      template: '<div ui-view=""></div>',
    })
    .state('app.subjects.current', {
      abstract: true,
      url: "/:subjectId",
      template: "<div ui-view />",
      ncyBreadcrumb: {
        skip: true
      }
    })
    .state('app.subjects.current.home', {
      url: '/home',
      templateUrl: "assets/src/subject/subjectHome.html",
      //resolve: loadSequence('subjectHomeCtrl'),
      ncyBreadcrumb: {
        label: 'View'
      },
      string: 'sidebar.nav.pages.SUBJECTHOME'
    })

И так мы можем их назвать

// $state.go
<button ng-click="$state.go('app.subjects.current.home', {subjectId: '999'});">

// ui-sref
<a ui-sref="app.subjects.current.home({subjectId: '888'})">

Проверьте это здесь. Это должно помочь выяснить, что отличается в вашем приложении...

Другие вопросы по тегам