问题标签 [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 投票
0 回答
124 浏览

google-closure-compiler - 如何在 --chunk 中为闭包编译器提供多个依赖项?

我有这个要求,我有依赖于 x 和 y 模块的 test.js 文件。所以我在尝试类似的东西,

下面的代码成功生成 x 和 y 但在生成测试模块时中断。

如何传递多个依赖项?如果我们不能通过块来做到这一点,那么我们还能怎么做呢?

在此先感谢您的帮助,

基兰

0 投票
1 回答
385 浏览

bitbucket - 自定义 Bitbucket 合并检查 - 提交配置后动态字段呈现两次

我正在为 Bitbucket 创建自定义合并检查。我从遵循本教程开始: https ://developer.atlassian.com/server/bitbucket/how-tos/hooks-merge-checks-guide/

我希望视图是动态的,例如具有创建多个相似输入字段(具有指定 ID)的按钮,这些字段最终存储在配置中。

首先,我为此使用了soy——我创建了一个调用例如.textField 的静态模板。它工作正常,但我无法即时创建新的类似字段(按下“添加新”按钮后)。

所以我使用 JavaScript 从 soy 的配置中获取数据。我将整个配置重写为 JS “map”,然后动态渲染所有字段(通过将它们附加到 HTML 代码),用配置中的值填充它们或通过按下按钮创建新字段。

它有效 - 我将所有数据保存在配置中,用于字段_[id]等键,例如字段_1、字段_2等。

但是有一个错误。当我按下“保存”按钮并再次查看弹出窗口进行编辑时,我可以看到 JavaScript 被执行了两次:我的所有字段都呈现了两次——第一次是在第一次执行期间,第二次是在第二次执行期间,出现几秒钟后。保存配置,刷新页面,再次查看弹窗,就没有这个问题了。

这是我在文件中的合并检查配置atlassian-plugin.xml

还有我简化的 .soy 模板代码:

为什么在这种情况下 JavaScript 会执行两次?有没有其他方法可以创建这样的动态视图?

0 投票
1 回答
485 浏览

templates - 是否可以在大豆(闭包模板)中连接两个字符串?

对于大豆,我想将两个字符串(硬编码或变量)连接成一个。我的想法是用第二个变量“参数化”第一个变量:

{let $key: 'abc_$anothervariable' /}

这行不通。我还尝试join()对列表使用内置函数:

{let $key: join(['abc', $anothervariable], '') /}

但这种方法也不起作用——它甚至似乎有无效的语法。甚至可以在闭包模板中做类似的事情吗?

0 投票
1 回答
56 浏览

google-closure-templates - 闭包模板 - 为复杂的“记录”定义创建一个可重用的别名

我有一个看起来像的大豆模板

由于“人”的记录定义变得比年龄和姓名更复杂,因此更新所有三个地方的参数定义变得乏味。是否可以创建一个别名或可以在每个模板中重用的东西?

0 投票
1 回答
182 浏览

javascript - 通过 Javascript 和 jQuery 呈现闭包模板(大豆模板)的问题

我使用 javascript 和 jQuery 来呈现闭包模板(大豆模板)。我正在关注它的hello world示例。
我的jsfiddle在这里

示例中所述,以下代码有效,

document.write(soy.examples.simple.helloWorld());

& 提供

你好世界!

但是当与 jQuery 一起使用动态插入闭包模板的内容时,它总是返回空,没有附加任何内容。 $('#withoutContent').append(soy.examples.simple.helloWorld());


具有讽刺意味的是,进一步看,以下 jQuery 可以正常工作

$('#withContent').append(soy.examples.simple.helloWorld().content);


我在从非常旧版本的闭包模板升级时遇到了这个问题。我们有很多这样的模板,在 javascript 中更新每个模板的用法.content很麻烦且容易出错。
为什么 jQuery 不能正确获取模板的内容?