angular.js - Angular模板中連結前面不帶#,如何能路由到模板?
高洛峰
高洛峰 2017-06-27 09:18:42
0
1
1021

使用angular做一個文件幫助,左邊是目錄樹,右側用到ng-view
首頁如下:

    <p class="container-fluid  bs-docs-container">
        <p class="row">
        <p id="doc_navbar" ng-controller="DocMenu" ng-init="init()" class="col-md-3 col-sm-3 col-sx-3">
          <p class="bs-sidebar hidden-print affix-top">
              <ul class="nav bs-sidenav">
                <li class="panel-title">
                  <a href="#en-us_topic_0059503914.html">概述</a>
                  <a href="#en-us_topic_0055728380.html">FAQ</a>
                </li>
               </ul>
          </p>
        </p>

            <p class="col-md-9 col-sm-9 col-sx-9" ng-view data-spy="scroll" data-target="doc_navbar">

                <!-- <p style="margin-bottom: 100px;"></p> -->

            </p>
        </p>
        <!-- docs end -->

    </p>

js檔案如下

'use strict';

angular.module('portalDoc', ['ngRoute'])
.controller('DocMenu', function() {
})
.controller('DocContent', function($scope) {
})
.config(function($routeProvider, $locationProvider) {
    $routeProvider
    .when('/en-us_topic_0059503914.html', { templateUrl: 'en-us_topic_0059503914.html'})
    .when('/en-us_topic_0055728380.html', { templateUrl: 'en-us_topic_0055728380.html'})
    .when('/en-us_topic_0054463579.html', { templateUrl: 'en-us_topic_0054463579.html'})
    .when('/en-us_topic_0055728381.html', { templateUrl: 'en-us_topic_0055728381.html'})
    .when('/en-us_topic_0055728382.html', { templateUrl: 'en-us_topic_0055728382.html'})
    .when('/en-us_topic_0054463600.html', { templateUrl: 'en-us_topic_0054463600.html'})
    .when('/en-us_topic_0054463621.html', { templateUrl: 'en-us_topic_0054463621.html'})
    .when('/en-us_topic_0054463631.html', { templateUrl: 'en-us_topic_0054463631.html'})
    .when('/en-us_topic_0054463504.html', { templateUrl: 'en-us_topic_0054463504.html'})
    //$locationProvider.html5Mode(true);
});

正常訪問時連結是這樣 http://localhost:8011/home.html#/en-us_topic_0055728380.html

碰到一個問題無法解決,templateUrl中各html之間互相會鏈接,直接用的<a href="en​​-us_topic_0054463504.html">xxxx</a>
現在href前面沒有“#”,直接點擊連結訪問連結是http://localhost:8011/en-us_topic_0054463504.html ,只顯示範本頁面單獨的內容,不能載入首頁那些內容,少了/home.html的內容

由於模板的內容是用其他工具寫作生成,連結前沒有'#'(不方便加,因為還有其他用途)

在這種情況下,連結如何能夠路由到模板?能讓連結變成這種 http://localhost:8011/home.html#/en-us_topic_0055728380.html

#非常感謝!


另外,嘗試過使用locationProvider.html5Mode(true),訪問home.html時連結變成http://localhost:8011/,左側連結去掉#能正常訪問,在home. html跳到en-us_topic_0054463504.html時,連結變成http://localhost:8011/en-us_topic_0054463504.html ,能正常訪問,但新開一個tab直接放http: //localhost:8011/en-us_topic_0054463504.html 又變成不載入首頁home.html那種情況

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(1)
给我你的怀抱

第一個問題你用路由了普通的a標籤是不能這樣跳轉的要用相應的路由a標籤跳轉或者用函數做路由跳轉
第二個問題你想直接訪問子路由這個是要服務器配偽靜態

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板