前端应用程序的角度路由

时间:2014-10-08 17:41:04

标签: javascript angularjs rest

我知道这是一个非常基本的问题,但似乎无法将所有内容都搞定 - 我正试图使用​​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永远不会被接受。那么应该在哪里定义?

如果需要,我很乐意添加更多详细信息和代码。谢谢!

1 个答案:

答案 0 :(得分:1)

尝试向您的href添加哈希值。

<a href="#/app/{{appname}}">

如果您不想在网址中使用哈希,则必须在路线设置中设置html5模式。

$locationProvider.html5Mode(true);