簡體   English   中英

Node JS如何知道如何處理路由

[英]How does Node JS know how to handle routes

我只是想讓部分頁面加載。

HTML:

<!DOCTYPE html>

<html ng-pp='app' lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Friends</title>
    <script src='angular/angular.js'></script>
    <script src='angular-route/angular-route.js'></script>
    <script src='app.js'></script>
</head>
<body>
    <p>
        <a href='#!/list'>All Your Frinds</a> | <a href='#!/new'>Add a Friend</a>
    </p>
    <div ng-view=''>
    </div>
</body>
</html>

路由:

var app = angular.module('app', ['ngRoute']).config(function ($routeProvider)
     {
        $routeProvider
        .when('/list', 
        {
            templateUrl: 'partials/list.html'
        })
        .when('/new',
        {
            templateUrl: 'partials/create.html'
        })
        .when('/show/:id',
        {
            templateUrl: 'partials/show.html'
        })
        .when('/edit/:id',
        {
            templateUrl: 'partials/edit.html'
        })
        .otherwise(
        {
            redirectTo: '/'
        })

    });

雖然,我有一個控制器,但是里面什么也沒有。 我只想看到部分頁面正在加載而事實並非如此。 我需要在我的部分頁面中使用ng-controller指令來加載它嗎?

在這個例子中它什么也沒做

您的nodejs很可能是從文件夾中提供靜態angularjs內容,如果您使用expressjs,那是因為

app.use(express.static('public'))

但是,angularjs路由器正在處理您的零件

確保設置

$locationProvider.html5Mode(false);

通過查看開發者控制台以查看路由器也指向什么URL,它也可以提供幫助。

如果沒有“”,也可以單獨使用

我從href刪除感嘆號后嘗試了您的代碼,它可以按預期工作。 還可以在HTML中添加基本href。 試試下面的代碼

<!DOCTYPE html>

<html ng-pp='app' lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <base href="/"></base>
    <meta charset="utf-8" />
    <title>Friends</title>
    <script src='angular/angular.js'></script>
    <script src='angular-route/angular-route.js'></script>
    <script src='app.js'></script>
</head>
<body>
    <p>
        <a href='#/list'>All Your Frinds</a> | <a href='#/new'>Add a Friend</a>
    </p>
    <div ng-view=''>
    </div>
</body>
</html>

JS

var app = angular.module('app', ['ngRoute']).config(function ($routeProvider,$locationProvider)
 {
    $locationProvider.html5Mode(false);
    $routeProvider
    .when('/list', 
    {
        templateUrl: 'partials/list.html'
    })
    .when('/new',
    {
        templateUrl: 'partials/create.html'
    })
    .when('/show/:id',
    {
        templateUrl: 'partials/show.html'
    })
    .when('/edit/:id',
    {
        templateUrl: 'partials/edit.html'
    })
    .otherwise(
    {
        redirectTo: '/'
    })

});

該指令拼寫錯誤...應該是:

ng-app

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM