问题标签 [google-closure-templates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4810 浏览

javascript - Python和Javascript的模板系统?

Google 的 Soy 模板的一个很好的特性是您可以在客户端 (JS) 和服务器 (Java) 上使用相同的模板。

目前,我计划使用编译为 JS 的 Soy 模板在客户端渲染大多数页面。但是,我的后端是用 Python 编写的(使用 Tornado),所以我不能轻易地在服务器端使用相同的模板来生成电子邮件或静态页面。

我可以在服务器端使用单独的 Java 组件渲染这些大豆模板,或者甚至让它们在 node.js 中工作。这些选项似乎都不是特别干净。

有没有在 JS 和 Python 中运行的好的模板引擎?有没有人用 JSON-Template 或 Tenjin 取得好的结果?还有其他想法吗?

0 投票
2 回答
1775 浏览

google-closure - 是否可以在 Closure 模板中创建对象?

我刚刚开始使用 Google Closure 做一些工作,我想将选择字段的创建移到它自己的模板中,并使用以下内容调用该模板:

并且templates.utils.select模板将具有selected为正确选项设置属性的逻辑。不幸的是,我得到一个“并非所有代码都采用 Soy V2 语法(找到标签 {{param options: [ {name: ...' 异常。

我假设我可以使用将 options 参数传递给调用模板的变通方法,但是我需要确保涵盖所有进入模板的方法,这将变得非常乏味。

此刻我想我必须和

这也很乏味,但至少数据在一个地方。

有没有更好的办法?

0 投票
1 回答
1175 浏览

google-closure - 如何在 Plovr 中为 Closure 模板创建自己的自定义函数

我正在使用Plovr并想在模板中使用我自己的自定义函数(特别是ucfirst函数)。目前我只对将模板呈现为 javascript 感兴趣,因为这是一个相当简单的案例,我认为实际编写代码应该不是太大的问题(使用 Plovr 包含的自定义函数作为起点)。

那么问题就变成了:我如何构建它并将其与 Plovr 一起使用?

0 投票
1 回答
474 浏览

javascript - 在 Java Web 项目中包含 CSS 和 javascript 文件的最佳实践是什么?

我最近开始了一个新的谷歌应用程序引擎项目,它使用 RestEasy for MVC 和 Gradle 作为我们的构建过程。现在我想要包含 SASS、javascript 和闭包模板文件,但我不确定我应该如何做到这一点。理想情况下,我想满足以下要求:

  1. 这些文件应该存在于它们自己的源目录中。例如 src/main/javascript、src/main/sass。
  2. 部署时,应缩小 javascript 文件。
  3. 开发时,应注意闭包模板和 sass 文件的更改并热交换到运行环境中。
  4. 客户端和服务器应该可以访问闭包模板。(这样可以在任一端进行渲染)

您认为实现这一切的最佳方式是什么?谢谢你的时间。

0 投票
2 回答
894 浏览

nested - 在另一个模板中嵌套闭包模板

我确信应该有某种方法可以从模板中呈现另一个模板,这样我就不必复制粘贴类似的块。我只是无法弄清楚。

0 投票
1 回答
8732 浏览

google-closure-templates - 如何在闭包javascript模板中声明局部变量

我开始学习闭包 javascript 模板库。是否可以在闭包模板大豆文件中创建局部变量?我尝试使用

但它会$i=1在屏幕上打印而不是声明它。

我查看了 http://code.google.com/p/closure-templates/source/browse/trunk/examples/features.soy的示例, 但没有找到相同类型的示例。

0 投票
1 回答
112 浏览

google-closure-templates - 使用单个模板定义,Google 闭包模板在文件中获取有关重复模板定义的错误

我在 java 中使用谷歌闭包模板。使用 SoyFileSet 构建器将我的模板编译为单个 java 对象时出现以下错误(我有许多模板文件编译为 java 对象):

com.google.template.soy.base.SoySyntaxException:在文件 /templates/namespace/qualifier/TemplateName.soy 中找到模板名称“namespace.qualifier.templateName”的两个定义。

这个错误的问题是 - 对于它抱怨的模板 - 我在该文件中只定义了一个模板。此外,我对所有模板文件进行了文件搜索,以验证这是我唯一拥有该名称的模板。

有人知道我的问题是什么吗?

0 投票
3 回答
259 浏览

java - 如何查看地图类型?

我将模型中的数据设置为:

通过 Spring 映射到以下函数:

在这里,我需要检查模型是否属于 type SoyMapData,如果是,则将模型的类型设置为SoyMapDataelse 映射。我怎样才能做到这一点?

我试过下面的方法它不起作用。

0 投票
1 回答
91 浏览

java - 使用 1 个源跨多个站点/代码语言导航

场景: 我们的客户拥有多个大型站点、大量利益相关者和决策者,目前排除了涉及所有这些人的重新开发。有些网站是 php,有些是 Coldfusion,有些是 ASP.NET。我们正在为他们构建一个带有“TopHat”导航的新站点,该导航将在这些站点中用于将它们链接在一起。谷歌和领英做类似的事情(附截图)。

问题: 这个 UI 元素有通用术语吗?我们发明了术语“TopHat”,以便能够集体讨论该元素。

解决方案: 在谷歌搜索时,我发现了闭包模板:http ://code.google.com/closure/templates/index.html闭包模板是一个好方法吗?根据我阅读的内容,我可以通知每个站点的开发人员在他们的代码中包含 javascript。任何想法或反馈将不胜感激。

0 投票
2 回答
1184 浏览

google-closure-compiler - What is the correct way to use soyutils with Google Closure?

I am trying to use Google Closure templates (Soy) with Google Closure.

I am including the soyutils_usegoog.js utilities file as instructed. This file provides a number of utilities used by the generated templates, notably soy.StringBuilder. Here's how it is creating it:

The soyutils file requires goog.string.StringBuffer a few lines above, but when running in non-compiled mode this results in a runtime error because the JS file that StringBuffer resides in will not be loaded until after soyutils has executed.

Unless I am mistaken, JS files in Closure should not immediately access namespaces that they 'require'. The <script> tag is only added after the execution of the current script (in non-compiled mode) so immediate usage will result in a runtime error.

In short, how can I load in soyutils_usegoog.js without triggering a runtime error due to the early access of good.string.StringBuffer.