2

我正在寻找一种在 Google Closure 中获取文档片段(从 Soy 模板生成)的方法,并在注册表中使用相应的 UI 组件递归地装饰任何元素。

在我看来,使用遍历 DOM、根据注册表检查类并在适当时进行装饰的函数应该相对简单,但这似乎是一个基本的用例,我想知道我是否缺少一些简单的东西.

我应该继续我计划的实现,还是在库中的某个地方有一个函数可以在某个地方处理这个问题?

或者,我装饰模板的整体方法是否存在缺陷?我的目的是能够使用最少的 JavaScript 在 Soy 中以声明方式从 UI 组件库中设计复杂的组件。

4

1 回答 1

3

是的,该库不支持开箱即用,也许一些内部谷歌代码支持,但我认为他们可能倾向于使用不那么完整的方法来获得更多控制。

我们的方法更加多阶段,我会稍微解释一下。

鉴于我们想(尽可能)使用预渲染,我们的 json 数据应该从 1 到 1 映射到我们的模板,因此我们的 json 文件提供了一个模式,我们根据该模式生成我们的 javascript,使我们的模型保持最新,创建我们的组件(您可以通过在工厂注册它然后注册装饰来扩展它)。这个生成的代码然后有一个 decorateChildren 步骤,当组件装饰时会自动调用它,因此我们得到递归。我们实际上还生成了可扩展的模板,然后通过使用委托模板覆盖(模板系统 IMO 的一个很棒的功能)

我认为您已经走在正确的轨道上,您只需要编写一些代码来满足您的需求。

于 2013-01-09T13:14:05.980 回答