使用AngularJS中的$stateProvider和ui.router
Using $stateProvider and ui.router in AngularJS
使用MeteorJS在AngularJS上完成本教程,但遇到了ui.router、$stateProvider和$locationProvider的一些问题。
我的问题是,据我所知,所有东西都应该正确连接以进行路由,但我的链接实际上不起作用。我的主要文件的内容如下,但首先是关于问题的更多信息:
问题似乎出在线路//$locationProvider.html5mode(true)上;在app.js中。它当前已被注释掉,这允许加载页面,但无法正确路由链接。如果我取消注释,那么页面返回以下错误:
Uncaught Error: [$injector:modulerr] Failed to instantiate module socially due to:
TypeError: undefined is not a function
我假设$locationProvider是未定义的。这看起来很像一个依赖注入错误,但我找不到任何依赖注入错误。非常感谢您的帮助。
app.js
if (Meteor.isClient){
angular.module("socially", ['angular-meteor', 'ui.router']);
angular.module("socially").config(['$urlRouterProvider', '$stateProvider', '$locationProvider', function($urlRouterProvider, $stateProvider, $locationProvider) {
$stateProvider
.state('parties', {
url: '/parties',
templateUrl: 'parties-list.ng.html',
controller: 'PartiesListCtrl'
})
.state('partyDetails', {
url: '/parties/:partyId',
templateUrl: 'party-details.ng.html',
controller: 'PartyDetailsCtrl'
});
$urlRouterProvider.otherwise('/parties');
//$locationProvider.html5mode(true);
}]);
angular.module("socially").controller("PartiesListCtrl", ['$scope', '$meteor', function($scope, $meteor){
$scope.parties = $meteor.collection(Parties);
$scope.remove = function(party){
$scope.parties.remove(party);
};
$scope.removeAll = function(){
$scope.parties.remove();
};
}]);
angular.module("socially").controller('PartyDetailsCtrl', ['$scope', '$stateParams', function($scope, $stateParams){
$scope.partyId = $stateParams.partyId;
}]);
}
index.html
<head>
<base href="/">
</head>
<body>
<div ng-app="socially">
<h1>
<a href="/parties">Home</a>
</h1>
<div ui-view></div>
</div>
</body>
各方列表.ng.html
<form>
<label>Name</label>
<input ng-model="newParty.name">
<label>Description</label>
<input ng-model="newParty.desc">
<button ng-click="parties.push(newParty)">Add</button>
</form>
<ul>
<li ng-repeat="party in parties">
<a href="/parties/{{party._id}}">{{party.name}}</a>
<p>{{party.desc}}</p>
<p>{{party.name}}</p>
<button ng-click="remove(party)">X</button>
</li>
</ul>
参与方详细信息.ng.html
Here you will see the details of party number: {{ partyId }}
我最近也刚开始使用流星角。经过测试,您的问题似乎是一个简单的小写"m"。我明白"5"怎么会让骆驼案变得混乱。
更正:$locationProvider.html5Mode(true);
相关文章:
- 混合 ui-sref 和 $state.go 在 Angular ui-router 中进行状态转换
- Angular JS/UI Router:为给定状态禁用指令
- 使用AngularJS中的$stateProvider和ui.router
- 带有ui.router的带角度的嵌套视图
- 如何使用AngularJS,Vise和UI Router全局实现身份验证
- 如何使用AngularJS和ui-router从Laravel 5.1获取下载文件
- AngularJS - ui.router - 如何在动态添加它们后重定向到所需的状态
- Angular UI Router-在不了解第二级嵌套视图的情况下更改第三级嵌套视图
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- AngularJS : ui.router 不显示模板
- [AngularJS][UI Router]在视图中显示视图
- Angular UI Router Resolve在AJAX完成之前未阻止状态更改
- 隐藏空模板,直到使用Restangular和UI Router加载数据
- Angular onEnter ui.router方法无法正常工作
- 如何使用Angular UI Router解析所有状态的数据
- ng模板,带有ui.router,单独的文件
- 使用Angular UI Router,如何使一个状态成为所有状态的子状态
- Angular ui-router resolve promise给出了无限的摘要循环
- AngularJS ui-router:如何全局解析所有路由的典型数据
- 加载视图以查看问题 - AngularJS + ui.router