我在Play frameework上有一个AngularJS应用程序。想要仅将Play框架用于服务。 如何使angularjs路由工作?我的应用程序总是在Play路线中查看并且从不查看Angularjs路线,因此给出了找不到路线的错误。
我在scala中看到了一些例子。我不太明白他们在做什么。
播放路线:
POST / location @ controllers.Application.create()
GET / location /:id @ controllers.Application.get(:Id)
GET / @ controllers.Application.list()
AngularJS Routings:
config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
console.log('In routeProvider()'+Date.now());
$routeProvider.
when('/', {
templateUrl: 'html/test.html',
controller: 'LocationsController'
}).
when('/location/:id', {
templateUrl: 'html/test.html',
controller: 'LocationController'
}).
when('/locations', {
templateUrl: 'html/test.html',
controller: 'LocationsController'
});
console.log('In routeProvider()..2'+Date.now());
$locationProvider.html5Mode(true); // .hashPrefix("!")
}])
例如,我希望http://localhost:9000/首先应该点击Angularjs路线。 Angularjs控制器将通过请求播放服务来获取数据。同样,http://localhost:9000/location/100需要首先点击Angularjs。相应的angularjs控制器将通过请求play's / location / 100获得该给定id的数据。
我的应用程序总是在Play路线中查看并且从不查看Angularjs路线,因此给出了找不到路线的错误。我如何使它们都工作?谢谢你的帮助。
答案 0 :(得分:0)
我建议你,不要使用带有Play项目的Angular JS,你可以将Angular JS作为单独的应用程序(你可以使用express作为Node的服务器顶部),并使用$ ngResource进行任何REST调用或使用Angular中的$ http调用Ajax,然后通过Play框架提供响应。
我还搜索过许多项目,将Angular与游戏整合,但我找不到好的。
注意:您需要使用Action合成在Play服务器中启用CORS,以允许Angular应用与Play服务器进行交互 http://playframework.wiki/index.php?title=Access-Control-Allow-Origin