Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor:从其他模板调用模板帮助器_Meteor - Fatal编程技术网

Meteor:从其他模板调用模板帮助器

Meteor:从其他模板调用模板帮助器,meteor,Meteor,我有两个模板,我定义了JavaScript助手和事件。当在模板a中单击一个按钮时,我想做的一件事是为模板B调用一个助手函数,该函数将更改屏幕上显示的内容。这可能吗 如果不可能,我想重新加载模板B 我该怎么做这两件事呢?我是否使用Tracker.autorun?反应变量?理想情况下,在模板A的事件函数中 B.helpers.call("helperFunctionFromTemplateB"); 对于我认为您想要实现的目标,有很多解决方案,但答案确实取决于上下文 如果模板A是B的子模板:

我有两个模板,我定义了JavaScript助手和事件。当在模板a中单击一个按钮时,我想做的一件事是为模板B调用一个助手函数,该函数将更改屏幕上显示的内容。这可能吗

如果不可能,我想重新加载模板B

我该怎么做这两件事呢?我是否使用Tracker.autorun?反应变量?理想情况下,在模板A的事件函数中

    B.helpers.call("helperFunctionFromTemplateB");
对于我认为您想要实现的目标,有很多解决方案,但答案确实取决于上下文

  • 如果模板A是B的子模板:
  • 您可以将对父模板中a的引用向下传递到子模板的数据上下文,并使用
    {{>childTemplate reactiveVar=reactiveVar}}
    修改它,其中
    reactiveVar
    是父模板中返回对反应变量引用的帮助器
  • 如果要更改的内容位于父级的数据上下文中,则可以使用
    模板。parentData(n)
    其中
    n
    是要跳转的级别数。虽然修改父级数据可能不会立即反应,但您可以通过
    Template.currentData()
  • 使用某种全局可访问状态。最常见的答案可能是使用包并使用
    Session.get('var')
    Session.set('var',val)
  • 使用一个。这种方法在解耦和可重用性方面获得+,但如果您只需要从一个来源在一个地方修改这个变量(即,您的需求很简单),那么这种方法也可能会很麻烦
  • Meteor 1.3-如果您想在多个位置引用您的反应式数据,但不想创建一个类似于
    会话的全局会话
    ,请使用反应式变量或(更接近会话),在有意义的地方创建变量,
    导出
    它,和
    导入
    您的模板/任何其他要使用的地方
  • 还有很多其他的解决方案,这些只是第一个想到的。如果您提供更具体的上下文,我将提供我认为最好的代码示例,并解释原因。:)

    对于我认为您想要实现的目标,有很多解决方案,但答案确实取决于上下文

  • 如果模板A是B的子模板:
  • 您可以将对父模板中a的引用向下传递到子模板的数据上下文,并使用
    {{>childTemplate reactiveVar=reactiveVar}}
    修改它,其中
    reactiveVar
    是父模板中返回对反应变量引用的帮助器
  • 如果要更改的内容位于父级的数据上下文中,则可以使用
    模板。parentData(n)
    其中
    n
    是要跳转的级别数。虽然修改父级数据可能不会立即反应,但您可以通过
    Template.currentData()
  • 使用某种全局可访问状态。最常见的答案可能是使用包并使用
    Session.get('var')
    Session.set('var',val)
  • 使用一个。这种方法在解耦和可重用性方面获得+,但如果您只需要从一个来源在一个地方修改这个变量(即,您的需求很简单),那么这种方法也可能会很麻烦
  • Meteor 1.3-如果您想在多个位置引用您的反应式数据,但不想创建一个类似于
    会话的全局会话
    ,请使用反应式变量或(更接近会话),在有意义的地方创建变量,
    导出
    它,和
    导入
    您的模板/任何其他要使用的地方
  • 还有很多其他的解决方案,这些只是第一个想到的。如果您提供更具体的上下文,我将提供我认为最好的代码示例,并解释原因。:)