我在我的grails應用程序中使用angularJS。在此之前,我嘗試了一個來自互聯網的樣本。我試圖在我的主視圖中使用angularJS $ routeProvider作爲局部視圖。我的工作流程如下:
我的主視圖是index.gsp中:
<!DOCTYPE html>
<html lang="en">
<head>
<title>AngularJS Routing example</title>
</head>
<body ng-app="routeApplication">
<div class="container">
<div class="row">
<div class="col-md-3">
<ul class="nav">
<li><a href="#AddNewOrder"> Add </a></li>
<li><a href="#ShowOrders"> Show </a></li>
</ul>
</div>
<div class="col-md-9">
<div ng-view></div>
</div>
</div>
</div>
<script src="js/angular.js"></script>
<script src="js/angular-route.js"></script>
<script src="js/app.js"></script>
</body>
</html>
我的局部視圖是:add_order.gsp和show_orders.gsp顯示每個視圖示例消息。
我app.js如下:
var sampleApp = angular.module('routeApplication', ['ngRoute']);
sampleApp.config(['$routeProvider',
function($routeProvider) {
var base = '${request.contextPath}';
$routeProvider.
when('/AddNewOrder', {
templateUrl: 'templates/add_order.html',
controller: 'AddOrderController'
}).
when('/ShowOrders', {
templateUrl: 'templates/show_orders.gsp',
controller: 'ShowOrdersController'
}).
otherwise({
redirectTo: '/AddNewOrder'
});
}]);
sampleApp.controller('AddOrderController', function($scope) {
$scope.message = 'This is Add new order screen';
});
sampleApp.controller('ShowOrdersController', function($scope) {
$scope.message = 'This is Show orders screen';
});
注:我創建了一個模板文件夾,並放置在我的parital意見。
此問題是,每當我點擊加載我的局部視圖它顯示
`http://localhost/angularJSrouting/templates/show_orders.gsp`
404 Not Found
我缺少的東西還是有放置局部視圖的任何問題?
終於工作了,模板文件夾應該放在webapp裏面。在文件的html擴展名的情況下,它用作文件名。但在gsp的情況下,它需要添加一個下劃線,並在添加複數形式的「s」後出人意料地添加下劃線。如果是gsp:文件名_show_orders.gsp和templateUrl模板/ _show_orders.gsp –