我知道这是一个非常基本的问题,但似乎无法将所有内容都搞定 - 我正试图使用Angular / Sinatra应用程序来处理前端路由。我的应用程序没有找到正确的页面,我不知道为什么,因为如果你不使用的话,我在绕路线工作时会遇到一些麻烦数据库中。
在我的主页中," display.html",我有一些文字,然后是一组带有hrefs的D3图表:
<a href="/app/{{appname}}">
<div ng-cloak class="nvd3-bullet-chart2" id="chart" data="subsetVals" showXAxis="true" showYAxis="true">
</div>
</a>
通过循环使用NVD3函数来填充图表,而不是使用ng-repeat(不确定如何在异步性问题的情况下执行此操作)。
在我的displayCtrl中,我定义了$ scope.appname,如下所示:
$scope.appname = ''
var getGraphs = function(dataset){
var stats = {
app: dataset[0].App
}
$scope.appname = stats.app;
$scope.appname = $routeParams.appname;
}
我的角度路线设置如下:
app.config(function($routeProvider) {
$routeProvider
// route for the display page
.when('/', {
templateUrl: '/views/display.html',
})
.when('/app/:appname', {
templateUrl: 'views/details.html',
});
});
当我点击图表的href时,我收到的错误是该页面未在&#39; / app /&#39;中找到,这对我来说表示: appname永远不会被接受。那么应该在哪里定义?
如果需要,我很乐意添加更多详细信息和代码。谢谢!
答案 0 :(得分:1)
尝试向您的href添加哈希值。
<a href="#/app/{{appname}}">
如果您不想在网址中使用哈希,则必须在路线设置中设置html5模式。
$locationProvider.html5Mode(true);