我似乎在让 ui-router 实际路由事物时遇到了问题。我确信我所有的 javascript 文件都在加载,并且 angular 没有抛出任何错误。我有一个声明应用程序和基本 Controller 的 HTML 文件,然后加载具有路由器的 js 文件。您可以在下面看到我的代码示例。
index.html
<!DOCTYPE html>
<html ng-app="Yellr" ng-controller="yellrBaseCtrl">
<head>
<title>Yellr Moderator</title>
<link rel="stylesheet" type="text/css" href="assets/css/site.css"/>
</head>
<body>
<div class="side-nav">
...
</div>
<div class='main' ui-view>
</div>
<script src="assets/js/scripts.min.js"></script>
</body>
</html>
yellr.routes.js(编译成scripts.min.js)
'use strict';
angular
.module('Yellr', ['ui.router'])
.config(['$stateProvider', '$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/notfound');
$stateProvider
.state('feed', {
url: '/feed',
templateUrl: '/templates/feed.html',
controller: 'rawFeedCtrl'
});
}]);
console.log('Yellr routes');
我在这里遗漏了什么明显的东西吗?您可以找到整个代码库 here
最佳答案
问题出在模板 url 上。我看到您直接从根文件夹而不是应用程序提供文件。您必须将模板网址更改为:
$stateProvider
.state('feed', {
url: '/feed',
templateUrl: 'app/templates/feed.html',
controller: 'rawFeedCtrl'
});
此外,我建议将所有 html 和脚本构建到一个 dist 文件夹中并从那里提供服务。
关于javascript - Angular ui-router 不加载 Controller 或模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27744539/