可以使用Ant来嵌入变量AngularJS模板吗?

时间:2013-05-12 18:33:37

标签: eclipse ant angularjs

我想在给定文本文件(./WEB-INF/app.html)的特定点嵌入可变数量的文本文件(AngularJs模板),但修改文件除外,将其另存为另一个文件(./index.html? 。 我想要嵌入的文件都有以*.ng.html结尾的文件名,并且都在./assets/templates/的子文件夹中。

此外,我想在嵌入文件之前和之后编写文本(使AngularJS认识到它们是模板)。该文本应包含静态文本和相对于工作目录的文件名。

这是工作目录的可能结构:

(index.html) (generated after building)
--assets
  --templates
    --general
      about.ng.html
      contact.ng.html
      home.ng.html
    --users
      userlist.ng.html
--WEB-INF
  app.html

可以使用Ant完成吗?如果没有,我怎么能在Eclipse的构建时做到这一点?

为了进一步说明我的意图,这里有一些例子:

./ WEB-INF / app.html

<!doctype html>
<html><head>
@INSERTION_POINT@
</head><body></body></html>

./资产/模板/普通/ about.ng.html

This is a test.

./资产/模板/普通/ contact.ng.html

You can contact me at: <a href=mailto:mail@example.com>mail@example.com</a>

./资产/模板/普通/ home.ng.html

Welcome.<br>
Click a link to explore.

./资产/模板/用户/ userlist.ng.html

<ol>
<%= "{{#userlist}}" %>
  <li>
    {{username}}
  </li> <%= "{{/userlist}}" %>
</ol>

构建后,我希望./index.html看起来像:

<!doctype html>
<html><head>
<script type="text/ng-template" id="/assets/templates/general/about.ng.html">
This is a test.
</script>
<script type="text/ng-template" id="/assets/templates/general/contact.ng.html">
You can contact me at: <a href=mailto:mail@example.com>mail@example.com</a>
</script>
<script type="text/ng-template" id="/assets/templates/general/home.ng.html">
Welcome.<br>
Click a link to explore.
</script>
<script type="text/ng-template" id="/assets/templates/users/userlist.ng.html">
<ol>
<%= "{{#userlist}}" %>
  <li>
    {{username}}
  </li> <%= "{{/userlist}}" %>
</ol>
</script>
</head><body></body></html>

我发现我可以获取要嵌入的文件列表:

<fileset dir="war/assets/templates">
  <include name="**/*.ng.html"/>
</fileset>

当我有最后一个字符串时,我可以替换我的占位符并将输出保存到一个新文件,可能是这样的:

<copy file="WEB-INF/app.html" tofile="index.html">
  <filterset>
    <filter token="INSERTION_POINT" value="??foo??"/>
  </filterset>
</copy>

但是如何获取我想要作为值传递的字符串?

1 个答案:

答案 0 :(得分:0)

绝对不是你想要的......对不起......但是可能会看一个面向Javascript的构建工具(Grunt)并将其与eclipse集成(如果你是的话,甚至可以从ant运行它试图在java和javascript中保持你的构建相同。)

虽然这可能不是您正在寻找的,但如果您坚持标准,您将获得许多社区支持。