Dom*_*mra 32 scala playframework angularjs
我正在通过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'});
}]);
Run Code Online (Sandbox Code Playgroud)
我试图找到一个存储我的部分(Angular特定HTML文件)的好地方.理想情况下,我喜欢在Play中模拟它们的能力(即将它们作为*.scala.html文件).我可以使用如下的播放路径文件来完成此操作:
GET /partials/phone_index controllers.Application.phone_index
Run Code Online (Sandbox Code Playgroud)
我基本上偏爱/像这样的控制器动作:
def phone_index = Action {
Ok(views.html.partials.phone_index())
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找的解决方案是两个理想的组合:
有任何想法吗?
Per*_*ega 31
当我尝试类似的东西时,我得出的结论是,最好将其分为两部分:
public文件夹(类似/public/angular/)中,并使用默认的AngularJs方式映射模板我知道这听起来不太好,并且真的没有回答你关于如何做到这一点的问题,但是由于模板和它们的URL在Angular中的映射方式,尝试链接两个框架可能会有问题,并且它的好处将非常大因为任何改变都意味着很多工作,因此消除了Play和Angular的快速发展的主要好处.
这也允许您更好地分离关注点,如果您的项目增长可能很重要,因为您可以将AngularJS代码作为连接到后端的独立应用程序取消,它将正常工作.
您可以在此Github存储库中看到我所说的示例代码(基于AngularJS的TODO教程).我警告你,代码不太好,但应该给你一个想法,作为奖励向你展示如何将Jasmine整合到Play中,用于AngularJS单元测试.
| 归档时间: |
|
| 查看次数: |
13513 次 |
| 最近记录: |