Если я использую <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'
});
});
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'
})
И попробовать. Рекомендовать пройти через нефрит, и угловая часть этой ссылки