Angularjs доступ к представлениям с прямым URL

0

Если я использую <a href> или <a ui-sref>... все работает нормально, и я могу получить доступ ко всем представлениям. Когда я http://localhost/#/someurl ссылку непосредственно в браузер, например http://localhost/#/someurl она не работает.

если я нажму на одну из кнопок на панели навигации, а затем передаю свой url через <a href> или <a ui-sref>, он работает.

root.jade

ng-include(src="'partials/navbar.html'")
div(ui-view="")

navbar.jade nav.navbar.navbar-default.container-fluid.navbar-header a.navbar-brand (href= "#") Open Service Compendium

        ul.nav.navbar-nav
            li
                a(ui-sref="home") Home
            li
                a(ui-sref="test1") test1
            li
                a(ui-sref="test2") test2

Поэтому, если я попытаюсь

http://localhost/#/otherview

он не работает, я получаю пустую страницу с навигационной панелью, но если я нажму на test1, то URL будет сформирован как,

http://localhost/#/otherview

и это работает. Кажется, это немного логично, потому что div(ui-view="") на root.jade будет загружать только vews, которые будут нажаты на navbar, возможно? есть идея?

root.html

'use strict';
angular.module('myApp', ['ngAnimate', 'ngCookies', 'ngResource', 'ui.router', 'ngSanitize', 'ngTouch']).config(function($stateProvider) {
   $stateProvider.state('home', {
    url: '/',
    templateUrl: 'home.html'
  }).state('services', {
    url: '/services/:type',
    templateUrl: 'services.html'
  }).state('services.detail', {
    url: '/:id',
    templateUrl: 'detail.html'
  }).state('test1', {
    url: '/test1',
    templateUrl: 'test1.html'
  }).state('test2', {
    url: '/test2',
    templateUrl: 'test2.html'
  });
});
Теги:
angular-ui-router

1 ответ

0

root.jade

ng-include(src="'partials/navbar.html'") div(ui-view="")

navbar.jade - добавлен div (ng-view)

ul.nav.navbar-nav
            li
                a(ui-sref="home") Home
            li
                a(ui-sref="test1") test1
            li
                a(ui-sref="test2") test2
div(ng-view)

вы можете сохранить свои частичные .jade виде .jade расширений. В логике маршрутизации удалите расширения .html, например,

.state('test1', {
    url: '/test1',
    templateUrl: 'test1.html'
  }).state('test2', {
    url: '/test2',
    templateUrl: 'test2.html'
  })

становится,

.state('test1', {
    url: '/test1',
    templateUrl: 'test1'
  }).state('test2', {
    url: '/test2',
    templateUrl: 'test2'
  })

И попробовать. Рекомендовать пройти через нефрит, и угловая часть этой ссылки

  • 0
    Он больше не работает, он больше не загружает представления

Ещё вопросы

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