簡體   English   中英

帶有Express的角度UI路由器

[英]Angular ui-router with express

我已將ui路由器設置為以下狀態:

$locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/');

$stateProvider
.state('adminprojects', {
    url: '/adminprojects',
    templateUrl: 'views/adminProjects.html',
    controller: 'adminProjectsCtrl'
})
.state('adminprojectsdetails', {
    url: '/adminprojects/:id',
    templateUrl: 'views/adminProjectsDetails.html',
    controller: 'adminProjectsDetailsCtrl'
})

adminprojects視圖包含帶有ui-sref鏈接的列表。 例如

<li><a ui-sref="adminprojectsdetails({id: project.id})" href="/adminprojects/1">Project 1</a></li>

如果我單擊此鏈接(例如adminprojects / 1),則adminProjectsDetails.html視圖將正確顯示。 但是,如果我刷新此頁面或直接導航到該URL,則不會加載該視圖。

但是,如果我將html5模式設置為false,這將按預期工作;

快遞我有這個

router.get('/*', function(req, res) {
  res.sendfile(__dirname + '/public/index.html');
});

控制器現在只是樣板:

angular.module('jhApp')
.controller('adminProjectsCtrl', function($scope, projects) {
    $scope.projects = projects.items;
});

angular.module('jhApp')
.controller('adminProjectsDetailsCtrl', function($scope, $stateParams) {
    console.log($stateParams);
});

任何想法為什么這不起作用?

您是否創建了生成器角度的項目?

如果是這樣,請將<base href="/"/>放在HEAD內的所有其他元素上方。

生成器使用src文件夾的相對路徑創建index.html,如:

<script src="xxx/yyy.js"/>

刷新頁面時,瀏覽器將查找未找到的/adminprojects/xxx/yyy.js(.css,*)文件。 因此,您可能會遇到許多腳本和樣式錯誤。 使用基本標簽可解決該問題。

或者只需將所有src位置更改為“ xxx / yyy。 ”-> src =“ / xxx / yyy。

暫無
暫無

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

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