Closure中递归装饰的首选方法

时间:2013-01-07 12:11:53

标签: google-closure google-closure-library google-closure-templates

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

在我看来,使用遍历DOM的函数实现这一点应该相对简单,针对注册表检查类并在适当的时候进行修饰,但这看起来像是一个基本的用例,我想知道我是不是遗漏了一些简单

我应该继续我的计划实施,还是库中的某个地方有处理这个功能的地方?

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

1 个答案:

答案 0 :(得分:3)

是的,图书馆不支持开箱即用,也许是一些内部谷歌代码,但我认为他们可能更倾向于采用不那么完整的方法来进行更多控制。

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

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

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