Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 Deps.autorun表示服务器功能未定义_Meteor - Fatal编程技术网

Meteor Deps.autorun表示服务器功能未定义

Meteor Deps.autorun表示服务器功能未定义,meteor,Meteor,我从未花时间/机会真正了解Deps.autorun的范围。。。因此,我再次遇到了同样的问题,这个问题曾经困扰过我很多次(以前,我总是找到一个解决方法,绕过这个问题)。。。总之,基本上,我在服务器端定义了一个函数: serverFunc = function() {} 在客户方面,我是这样做的 Deps.autorun(function() { var test = serverFunc(); } 我收到错误消息说serverFunc未定义 有人能帮我理解为什么会这样吗 非常感谢 Deps.a

我从未花时间/机会真正了解Deps.autorun的范围。。。因此,我再次遇到了同样的问题,这个问题曾经困扰过我很多次(以前,我总是找到一个解决方法,绕过这个问题)。。。总之,基本上,我在服务器端定义了一个函数:

serverFunc = function() {}
在客户方面,我是这样做的

Deps.autorun(function() { var test = serverFunc(); }
我收到错误消息说serverFunc未定义

有人能帮我理解为什么会这样吗

非常感谢

Deps.autorun()
始终运行一次,然后在跟踪的任何依赖项发生更改时重新运行该函数。这些依赖关系通常需要设置为Meteor反应数据源。在客户端上未定义然后在服务器上定义的简单函数不足以重新触发

如果希望从客户端调用仅在服务器上定义的函数,则必须做两件事:

  • 在服务器上,将函数放入
  • 在客户端上,使用

  • 否则,客户机上不存在仅在服务器上定义的函数,在客户机上调用该函数将抛出调用未定义函数的错误。

    是的,我很清楚。。。但是,我可以在模板函数中调用serverFunc,例如:template.menu.test=function(){serverFunc();},它可以工作。。。那么有什么区别呢?我相信Deps.autorun在一个完全不同的范围内运行,但是它有什么不同呢?定义一个调用不存在函数的模板是一个错误,就像将一个不存在的函数放入Deps.autorun一样。不同之处在于Deps.autorun总是在启动时运行一次,而模板可能永远不会运行。内部错误处理也可能不同,因为我不知道并建议进行测试。