在Meteor中的模板中使用模板时,应该在哪里调用事件?

时间:2015-09-23 11:57:51

标签: meteor

我的图书馆藏品有各种不同的观点,这会产生一般模板"书籍"还有很多较小的模板,其中包括#34;书籍和#34;。例如," bookCovers"," bookList"," bookSearch"。

我似乎让大多数事件都运行正常,但我觉得我的代码在应该调用某个函数的事件方面陷入了真正的混乱。

我开始尝试尽可能多地存储在最外面的模板中(因此我只需要调用它们一次)但是某些事件看起来似乎没有在#34;内部&#34上调用它们;模板。

我还有点不确定是否有保持文件整洁的最佳做法 - 每个内部模板都有一个文件,或尽可能多地调用外部模板?

道歉,如果这个问题不是很精确,但我觉得这个区域在其他地方并没有得到很好的覆盖。

2 个答案:

答案 0 :(得分:2)

我同意@blackcat并且通常在最低级别的模板上定义事件。这允许我改变它而不用担心对它上面的模板的影响。更重要的是,在{{#each}}{{#with}}块中,您可以在this中获得正确的数据上下文。

虽然Meteor拥有全球助手,但它没有全球事件。这确实使模块化代码变得更加困难。

一些方法包括:

  1. 定义各个事件处理程序调用的全局函数以保持代码DRY。
  2. 使用动态模板,其中在父模板上定义事件,但动态选择内部模板。

答案 1 :(得分:1)

从我谦逊的经历来看,拥有一个"组件"做法。我尽量保持模板尽可能小而简单(当它们变得太大时将它们分开)。我在可能的最低级别定义我的事件,这意味着从生成事件的DOM的实际模板,而不是父模板。

我这样做有两个原因:

  • 您有可重复使用的组件
  • 代码更容易阅读

我发现recommendations for angular architecture非常相关,并经常尝试坚持这一点。

简而言之:每个模板一个文件,每个模板一个js文件及相关逻辑,每个模板也有一个scss文件。

我仍然非常希望听到其他人对此主题的看法。