我試圖用Spring後端和AngularJS前端製作單頁應用程序。我遵循教程並查找了類似的問題,但ngRoute似乎不適用於Spring後端(我得到它與NodeJS後端一起工作)。Spring Boot ngRoute
的index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Spring Demo</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular-route.js"></script>
<script src="../static/index.js"></script>
</head>
<body ng-app="index" ng-controller="indexController">
<a href="/test">test</a>
<div ng-view=""></div>
</body>
</html>
的test.html
<div>
Template loaded
</div>
index.js
'use strict';
const indexModule = angular.module('index', ['ngRoute']);
indexModule.controller("indexController", function indexController($scope) {
});
indexModule.config(function($routeProvider) {
$routeProvider.when('/test', {templateUrl: 'test.html'});
});
SringDemoController.java
package com.springdemo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class SpringDemoController {
@RequestMapping({ "/" })
public String getIndexTemplate() {
return "index";
}
}
當我點擊鏈接並且URL更改爲http://localhost:8080/test
項目結構:https://i.stack.imgur.com/mjrxN.png – Philippe
您尚未將locationProvider配置爲使用HML5模式。所以你的鏈接不是指向你的角度測試路線。它試圖從服務器加載/測試路徑。並且您沒有在服務器上爲此路徑配置任何內容,因此出現404錯誤。如果你的目的是爲了避免HTML5模式,鏈接應該是'test'。閱讀https://docs.angularjs.org/guide/$location –
我已經添加了「$ routeProvider.html5Mode(true);」。但是,如果我添加@RequestMapping(「/ test」)並返回我的Java控制器中的測試模板,是不是會失敗使用ng-view的目的?這將使它成爲一個多頁面的應用程序。 – Philippe