playframwork angularjs路由器

时间:2015-05-16 19:28:49

标签: playframework angularjs-routing

我在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路线,因此给出了找不到路线的错误。我如何使它们都工作?谢谢你的帮助。

1 个答案:

答案 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