angularJs 和 playframework 之间的路由

routing between angularJs and playframework

我正在使用 restangular ngroute 和 playframework,我正在尝试按照本教程进行 CRUD:http://plnkr.co/edit/d6yDka?p=info

索引页面(在教程中)中的 list.html 和 detail.html,我将它们全部放在 customer.scala.html 页面中,使用此调用主页:@main( "MyApp") 所以我所有的控制器和模型都在这个主页中定义。

那么我该如何进行路由,当我点击一个按钮时,我可以调用在我的 js 页面中定义的 link (localhost:9000/custd):

app.config(function($routeProvider, RestangularProvider) {
    $routeProvider.
      when('/custd', {
        controller:ListCtrl, 
        templateUrl:'list.html'
      }).

更新: 这是 customer.scala.html

中的 link
 <li><a href="@routes.Application.custDetail()">Customers</a></li>

在文件 Application.scala 我有这个:

 def custDetail = Action {
    Ok(views.html.custDetail("Your new application is ready."))
  }

在路线中我有这个:

GET     /                           controllers.Application.index

GET     /custdetail                 controllers.Application.custDetail

所以我如何 link 这个:/custd(在 angular 控制器中)与我的 html 页面

所以我认为您在这里有点深入。如果您不了解如何制作一个简单的播放网络应用程序,并且您不了解如何制作一个简单的 angular 应用程序,那么尝试立即将两者集成可能不是最好的主意(我试过我刚接触这个的时候也是一样,它很复杂!)。

您为什么选择 Angular 从事这份工作?如果您不打算创建单页应用程序(听起来您并不打算),那么只需使用播放模板就足以满足您的需求(并且有很多文档可用!)。

如果您坚持使用两者,angular 路由适用于 angular 应用程序。查看您提供的路由:

app.config(function($routeProvider, RestangularProvider) {
    $routeProvider.
      when('/custd', {
        controller:ListCtrl, 
        templateUrl:'list.html'
      }).

在此您提供了一个控制器和一个模板。这些是参考 Angular 控制器 html 模板,而不是 Play。如果您不确定 Angular 控制器如何工作,Angular 有很好的文档:

https://docs.angularjs.org

您需要从服务器端准确计算出您需要的信息,创建端点以将该数据提供给您的 Angular 应用程序(使用 AJAX 调用)。我知道这是一个高层次的答案,但真正将两者结合起来非常复杂,很难在一个回复中进行总结。我的建议是专注于创建一个 Angular OR Play 应用程序,然后一旦你掌握了基础知识,就可以将两者结合起来,但要清楚选择你的技术背后的原因,因为听起来你可能不是