繁体   English   中英

Play Framework 2项目中的AngularJs:模板渲染

[英]AngularJs in Play Framework 2 project: template rendering

我正在使用AngularJs将在Play Framework 2.5中编写的应用程序更改为单页应用程序。

以下是我在做什么的概述:

  • 使用Scala模板的@for显示帖子列表
  • 每个帖子都是使用包含的模板呈现的

片段:

@for(post <- posts) {
  @fragments.post(post)
}

到目前为止,这是我对Angular所做的工作:

  • 使用$ http使用Scala的javascript路由从数据库检索数据
  • 使用ng-repeat而不是@for遍历列表
  • 当前每个帖子都使用{{post}}呈现为纯json。

片段:

<ul>
  <li ng-repeat="post in posts">
    <div> {{post}} </div>
  </li>
</ul>

现在在显示每个带有某些模板的帖子时遇到了麻烦,尝试如下:

  • 以某种方式将帖子作为JSON传递给我最初使用的Scala模板。 我尝试将模板的参数类型从Post(scala对象)更改为某些Json。 自然,下面的代码导致了“找不到:值过帐”

例如:

<li ng-repeat="post in posts">
  @fragments.post( {{post}} )
</li>
  • 使用Angular指令模板而不是Scala模板:在下面的angularjs代码中,使用内联模板可以很好地工作。 我还可以使用templateUrl选项将模板外部化为其他文件。

例如:

<ul>
  <li ng-repeat="post in posts">
    <div mydirective></div>
  </li>
</ul>

和js:

mainApp.directive("mydirective", function() {
    return {
        //template: "<h1>Made by a directive: {{post.title}} !</h1>"
        templateUrl: "/assets/path_to_template"
    };
});

即使后者现在正在工作,我什至不确定哪种方法会更好。 我真的很喜欢能够将整个表单传递给Scala模板,并使其将UI表单绑定到控制器表单。 将AngularJs集成到Play框架中确实令人困惑,Play-angular种子对我而言并没有使它更加清晰。

实现上述目标的最佳方法是什么?

谢谢

您可能会考虑将AngularJS内容与Play完全分开。 如果这是您的选择,则这是如何执行此操作的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM