我想使用 AngularJS 构建登录页面,但在显示它时遇到问题。
这是我的登录页面 web-app/apps/loginPage/app.js
:
var app = angular.module('login-app', [
'ngRoute'
]);
app.config(function ($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'apps/loginPage/views/login.html'
}).
otherwise({
redirectTo: '/'
});
});
这是我的grails-app/views/login/auth.gsp
代码:
<html>
<head>
<meta name='layout' content='main'/>
<script src="${resource(dir: 'js', file: 'jquery-1.9.1.js')}"></script>
<script src="${resource(dir: 'js', file: 'angular.js')}" ></script>
<script src="${resource(dir: 'js', file: 'angular-route.js')}"></script>
<script src="${resource(dir: 'apps/loginPage', file: 'app.js')}"></script>
</head>
<body>
<div ng-app="login-app">
<div ng-view>
</div>
</body>
</html>
问题是,当我导航到 http://localhost:8080/myApp/login/auth
时,页面加载 Angular 应用程序,但不从 login 加载登录表单。 html
文件,因为它尝试在 http://localhost:8080/myApp/login/apps/loginPage/views/login.html
而不是 http:/下找到它/localhost:8080/myApp/apps/loginPage/views/login.html
如何修复路径?如何告诉 Angular 使用 localhost:8080/myApp 作为资源的根?
(请注意,我在 grails-app/views
中有 *.gsp 文件,在 web-app/apps/
中有 Angular 应用程序)
我不知道是否是配置 Grails 或 Angular 的问题。
最佳答案
在使用 Grails 和 Angular 完成 3 个项目的经验之后,我建议您使用纯 Angular 来完成整个前端部分。我什至没有在 Angular 中混合 GSP,而是使用带有 Handlebars 的纯 HTML 并通过 Angular-translate 进行本地化。应用程序登录是通过Spring Security AJAX登录实现的。
如果您将前端与后端完全分离,您可以在前端使用现有的脚手架工具,例如 Yeoman 或 Brunch。 HTML 片段的传递还可以被缓存、压缩等。
关于angularjs - Grails - 使用 AngularJS 的登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21959463/