Angular-Fullstack + UI 路由器没有正确路由
Angular-Fullstack + UI router isn't routing properly
我正在尝试使用 UI 路由器和当前没有 mongoDB 的 yeoman-fullstack 生成器来路由我的应用程序。在我的这个问题示例中,一切都是默认测试并确保 UI-router 正常工作。
主要是因为我不理解,漏掉了一些愚蠢和笨拙的东西,所以我道歉。
https://github.com/DaftMonk/generator-angular-fullstack
我正在尝试使用
在 client/app/app.js 中编辑我的路线
'use strict';
angular.module('sr388App', [
'ngCookies',
'ngResource',
'ngSanitize',
'ui.router',
'ui.bootstrap'
])
.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider
.otherwise('/');
$stateProvider
.state('about', {
url: '/about',
template: '<h1>Attempting to have this point at /main/about.html but this is for testing purposes</h1>'
});
$locationProvider.html5Mode(true);
});
现在,测试 localhost:9000/about 将加载,但是当我尝试 link 导航栏的状态时它中断了。
'use strict';
angular.module('sr388App')
.controller('NavbarCtrl', function ($scope, $location) {
$scope.menu = [{
'title': 'Home',
'link': '/',
'title': 'About',
'link': '/about'
}];
$scope.isCollapsed = true;
$scope.isActive = function(route) {
return route === $location.path();
};
});
控制台错误是
未捕获的语法错误:对象文字中的重复数据 属性 在严格模式下不允许
这是导航栏html
<div class="navbar navbar-default navbar-static-top" ng-controller="NavbarCtrl">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggle" type="button" ng-click="isCollapsed = !isCollapsed">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="/" class="navbar-brand">sr388</a>
</div>
<div collapse="isCollapsed" class="navbar-collapse collapse" id="navbar-main">
<ul class="nav navbar-nav">
<li ng-repeat="item in menu" ng-class="{active: isActive(item.link)}">
<a ng-href="{{item.link}}">{{item.title}}</a>
</li>
</ul>
</div>
</div>
</div>
我确信我对正在发生的事情(应该正在发生的事情)的基本理解是有缺陷的。
我确实注意到在不更改 URL 的情况下尝试加载状态时没有添加 #。
<a ng-href="{{item.link}}">{{item.title}}</a>
我以为我找到了问题,这会解决它
<a ui-sref="{{item.link}}">{{item.title}}</a>
但是没有骰子。
任何 advice/suggestions 将不胜感激。我真正想做的就是基于此创建一个简单的 SPA 页面
http://i.imgur.com/sZYe15o.png
那只是 运行 通过几个不同的视图状态。
/#关于
/#contact 等
在 ui-sref 中只输入州名称而不是 URL/link
ui-sref="about"
然后就可以了
我正在尝试使用 UI 路由器和当前没有 mongoDB 的 yeoman-fullstack 生成器来路由我的应用程序。在我的这个问题示例中,一切都是默认测试并确保 UI-router 正常工作。
主要是因为我不理解,漏掉了一些愚蠢和笨拙的东西,所以我道歉。
https://github.com/DaftMonk/generator-angular-fullstack
我正在尝试使用
在 client/app/app.js 中编辑我的路线'use strict';
angular.module('sr388App', [
'ngCookies',
'ngResource',
'ngSanitize',
'ui.router',
'ui.bootstrap'
])
.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$urlRouterProvider
.otherwise('/');
$stateProvider
.state('about', {
url: '/about',
template: '<h1>Attempting to have this point at /main/about.html but this is for testing purposes</h1>'
});
$locationProvider.html5Mode(true);
});
现在,测试 localhost:9000/about 将加载,但是当我尝试 link 导航栏的状态时它中断了。
'use strict';
angular.module('sr388App')
.controller('NavbarCtrl', function ($scope, $location) {
$scope.menu = [{
'title': 'Home',
'link': '/',
'title': 'About',
'link': '/about'
}];
$scope.isCollapsed = true;
$scope.isActive = function(route) {
return route === $location.path();
};
});
控制台错误是 未捕获的语法错误:对象文字中的重复数据 属性 在严格模式下不允许
这是导航栏html
<div class="navbar navbar-default navbar-static-top" ng-controller="NavbarCtrl">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggle" type="button" ng-click="isCollapsed = !isCollapsed">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="/" class="navbar-brand">sr388</a>
</div>
<div collapse="isCollapsed" class="navbar-collapse collapse" id="navbar-main">
<ul class="nav navbar-nav">
<li ng-repeat="item in menu" ng-class="{active: isActive(item.link)}">
<a ng-href="{{item.link}}">{{item.title}}</a>
</li>
</ul>
</div>
</div>
</div>
我确信我对正在发生的事情(应该正在发生的事情)的基本理解是有缺陷的。
我确实注意到在不更改 URL 的情况下尝试加载状态时没有添加 #。
<a ng-href="{{item.link}}">{{item.title}}</a>
我以为我找到了问题,这会解决它
<a ui-sref="{{item.link}}">{{item.title}}</a>
但是没有骰子。
任何 advice/suggestions 将不胜感激。我真正想做的就是基于此创建一个简单的 SPA 页面
http://i.imgur.com/sZYe15o.png
那只是 运行 通过几个不同的视图状态。
/#关于 /#contact 等
在 ui-sref 中只输入州名称而不是 URL/link
ui-sref="about"
然后就可以了