当前位置: 首页 > 面试题库 >

Play Framework 2.1-AngularJS路由-最佳解决方案?

章茂
2023-03-14
问题内容

我正在通过AngularJS教程进行工作。Angular使用它自己的JS路由机制来允许单页应用程序。Angular的示例路由文件如下所示:

angular.module('phonecat', []).
  config(['$routeProvider', function($routeProvider) {
  $routeProvider.
      when('/phones', {templateUrl: '/partials/phone-list',   controller: PhoneListCtrl}).
      when('/phones/:phoneId', {templateUrl: 'partials/phone-detail', controller: PhoneDetailCtrl}).
      otherwise({redirectTo: '/phones'});
}]);

我试图找到一个存储我的局部文件(特定于Angular的HTML文件)的好地方。理想情况下,我希望能够从Play中对其进行模板化(例如,将其作为*
.scala.html文件)。我可以使用aa播放路由文件来完成此操作,如下所示:

GET     /partials/phone_index       controllers.Application.phone_index

我基本上偏向于这样的控制器动作:

def phone_index = Action {
  Ok(views.html.partials.phone_index())
}

我正在寻找的解决方案是两种理想的结合:

  1. 我将进行某种映射,使我可以访问/ partial / *下的任何文件并取回部分文件。
  2. 我想重写路由到特定的部分,所以我 的CAN 用控制器动作来动态填充用数据(罕见)。

有任何想法吗?


问题答案:

当我尝试类似的操作时,我得出的结论是,最好将其分为两个部分:

  • 将Play用作通过Ajax调用与之交互的后端
  • 将Angular模板存储在Play public文件夹中(类似/public/angular/),并使用默认的AngularJs方式映射模板

我知道这听起来并不好,并且确实不能回答您的问题,但是由于在Angular中映射模板及其URL的方式,尝试链接这两个框架可能会出现问题。由于任何微小的变化都意味着大量的工作,因此消除了Play和Angular快速发展所带来的主要好处。

这也使您可以更好地分离问题,如果您的项目不断增长,这可能很重要,因为您可以将AngularJS代码作为连接到后端的独立应用程序拿走,并且可以正常工作。

您可以在这个Github存储库中看到一些我所说的示例代码(基于AngularJS的TODO教程)。我警告您,代码不太好,但是应该给您一个想法,并且作为一个额外的奖励,您可以了解如何将Jasmine集成到Play中,以进行AngularJS单元测试



 类似资料:
  • 我有几个不同的路由,但包含相似的参数。 示例: 请注意,所有三个视图都使用相同的图表控制器来控制视图。这是一个相当通用的控制器,但它需要在可用的图表类型之间切换。。。同时保持路线的其余部分<示例:(这不起作用) 有人知道如何在不完全重新键入或重建路由路径的情况下轻松更新路由参数吗?

  • 问题内容: 是否可以使用需要解析数据的ui-router来建立抽象状态?我需要使用个人资料信息加载页面的上半部分,然后在页面底部添加一个用于加载其他详细信息的子导航。这个想法是,抽象状态每次都会加载配置文件信息,而不管我处于哪个子状态。它似乎不起作用。 例: 问题答案: 和它的 plnkr 因此,在我们的情况下,我们需要在父级中进行此更改 和这个孩子 因此,与其在父母和孩子中使用resolve:{

  • 问题内容: 我们构建3层企业解决方案,通常由几个webapp和ejbjar模块组成,这些模块都与​​数据库通信并具有多个外部集成点。 每个模块通常需要自己的配置,这些配置可以在解决方案的生命周期内进行更改。部署它成为一场噩梦,因为现在我们必须记住18个属性文件以进行复制和配置,还需要设置数据源,队列,内存需求等。 我希望但不能乐观地找到更好的方法。我们考虑/使用过的一些选项,各有其优缺点: 使用多

  • 主要内容:AngularJS 实例,路由设置对象,AngularJS 实例本章节我们将为大家介绍 AngularJS 路由。 AngularJS 路由允许我们通过不同的 URL 访问不同的内容。 通过 AngularJS 可以实现多视图的单页 Web 应用(single page web application,SPA)。 通常我们的 URL 形式为 http://xnip.cn/first/page,但在单页 Web 应用中 AngularJS 通过 #! + 标记

  • 假设我有这条路线 第一个示例将调用中的函数,但第二个示例我不知道将函数放在哪里,无论是在还是中,我是否应该将第二个示例放在中?还是在销毁功能中显示DiscountController?哪一种是最佳实践?

  • 本文向大家介绍IONIC自定义subheader的最佳解决方案,包括了IONIC自定义subheader的最佳解决方案的使用技巧和注意事项,需要的朋友参考一下 IONIC subheader是我们常用的一个css 属性,但是这个subheader的高度是固定的,当然也是可以改变的,但是如果改了subheader的告诉,还要更改content的top值,稍微有些麻烦,如果是动态告诉的subheade