更新:问题结果是意外清除了服务中的所有模块。
这是有效的提交,repo。这是导致问题的代码link。我仍然不知道这里出了什么问题。
经过一些试验,我认为这是因为我使用promise来获取数据。我也在应用程序中使用d3Promise,并得到相同的bug,指令没有再次加载(这次,菜单指令也失败了)。
一个奇怪的错误。
添加menu指令后,map指令不会加载到页面中。它就在那之前的页面中。
在chrome控制台和grunt服务器中都没有错误。
我花了一些时间调试。我发现$ routeProvider不起作用。它只会更改url,但不会加载partials并绑定partials的控制器。
以下是代码:
index.html中的:
<body ng-app="SFM">
<!-- Add your site or application content here -->
<div class="container">
<div class="header">
<h3 class="text-muted">SF-Muni</h3>
<a ng-href="#/about" class="btn">about</a>
</div>
<div menu></div>
<div ng-view></div>
</div>
<!-- other vender files -->
<script src="scripts/app.js"></script>
<!-- utilities -->
<!-- services -->
<script src="scripts/services/d3service.js"></script>
<script src="scripts/services/muniService.js"></script>
<!-- controllers -->
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/about.js"></script>
<!-- directives -->
<script src="scripts/directives/menu.js"></script>
<script src="scripts/directives/map.js"></script>
</body>
app.js:
'use strict';
angular
.module('SFM', [
'ngResource',
'ngRoute',
'd3'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl'
})
.otherwise({
redirectTo: '/'
});
});
答案 0 :(得分:0)
据我所知,忘记请求将$ routeProvider注入config函数。
试试这个:
.config(['$routeProvider',
function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl'
})
.otherwise({
redirectTo: '/'
});
}]);