如何在模板助手中使用 Meteor 方法

2023-12-27

如何定义一个可以在模板助手中调用的 Meteor 方法?

我有这两个文件:

文件:lib/test.js

Meteor.methods({
    viewTest : function (str) {
        return str;
    }
});

文件:客户端/myView.js

Template.helloWorld.helpers({
    txt : function () {
        var str = Meteor.call('viewTest', 'Hello World.');
        return str;
    }
});

当我给“str”一个普通字符串时,一切正常。但在这种情况下,我的模板没有任何价值。我为了测试而在同一个文件中定义了该方法,其中该方法是一个普通函数,并尝试调用该函数。我得到的错误是该函数不存在。所以我认为 Meteor 会在了解我为其定义的方法之前尝试渲染模板。但我认为这有点不寻常——不是吗?


现在有一种新方法可以做到这一点(Meteor 0.9.3.1),它不会污染会话名称空间

Template.helloWorld.helpers({
    txt: function () {
        return Template.instance().myAsyncValue.get();
    }
});

Template.helloWorld.created = function (){
    var self = this;
    self.myAsyncValue = new ReactiveVar("Waiting for response from server...");
    Meteor.call('getAsyncValue', function (err, asyncValue) {
        if (err)
            console.log(err);
        else 
            self.myAsyncValue.set(asyncValue);
    });
}

在“created”回调中,您创建一个 ReactiveVariable 的新实例(请参阅docs http://docs.meteor.com/#reactivevar)并将其附加到模板实例。

然后,您调用您的方法,当回调触发时,您将返回的值附加到反应变量。

然后,您可以设置帮助程序以返回反应变量的值(现在附加到模板实例),并且当方法返回时它将重新运行。

但请注意,您必须添加reactive-var包才能使其工作

$ meteor add reactive-var
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在模板助手中使用 Meteor 方法 的相关文章

  • 在 Meteor.method 中调用函数返回未定义

    过去几天我一直在尝试从 Meteor 方法获取返回对象 每次我这样做我都会得到undefined在客户端上 Meteor methods CORSTest function let url www theverge com 2017 4 1
  • 根据嵌套值使用数组过滤对象数组

    我正在尝试根据某些嵌套对象过滤数组 我准备了一些Fiddle http jsfiddle net NZnN2 249 输入数组如下所示 let arrayOfElements name a subElements surname 1 sur
  • 将鼠标悬停在图像上以显示按钮,并且将鼠标悬停在实际按钮上时不会触发

    我试图让按钮在悬停在图像上时出现 以下作品 jQuery show image mouseenter function jQuery the buttons animate opacity 1 1500 mouseout function
  • 按下了哪个提交按钮?

    在这个jsfiddle中 http jsfiddle net littlesandra88 eGRRb http jsfiddle net littlesandra88 eGRRb 我是否提交了自动生成的按钮 每个表行都有一个唯一的 ID
  • 最小的 ExtJS 包是什么?

    有谁知道 Ext JS 2 2 所需的最少文件吗 我知道 ExtJS 网站有一个功能 build http extjs com products extjs build ExtJS ext js 的小版本 作为 ext all js 的替代
  • Chrome 扩展程序中的后台脚本到底何时运行?

    在我的 chrome 扩展中 我有一个后台脚本 它将使用XMLHttpRequest note that this code is in the global scope i e outside of any function also n
  • 如何在 JavaScript 中构建一个计算数组中出现次数的对象?

    我想计算数组中某个数字出现的频率 例如 在Python中我可以使用Collections Counter创建一个字典 记录某个项目在列表中出现的频率 据我所知 JavaScript 是这样的 var array 1 4 4 5 5 7 va
  • 带有嵌入式 Ruby 的 Javascript:如何安全地将 ruby​​ 值分配给 javascript 变量

    我在页面的 javascript 块中有这一行 res foo 处理这种情况的最佳方法是什么 ruby var里面有单引号吗 否则会破坏 JavaScript 代码 我想我会用红宝石JSON http json org ruby var 上
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 如何使用 selenium 获取 javascript 结果?

    我有以下代码 from selenium import selenium selenium selenium localhost 4444 chrome http some site com selenium start sel selen
  • 比较 javascript 元素和 scala 变量的 Play 框架 Twirl 模板

    如下面的代码示例所示 我想比较 scala 辅助元素内的 javascript 元素 然而 即使存在元素 abcde 它也始终返回 false 除了使用标签之外 如何获取 scala 辅助元素内的 javascript 值 appSeq S
  • 如何调试性能问题/优化您的流星应用程序

    我刚刚将 Meteor 应用程序部署到 Digital Ocean 上的生产服务器上 我注意到 对于大约 7500 个文档 完全获取对象 有选择地仅获取 3 个字段 并填充自动完成数据大约需要 3 5 秒 我相信对于如此数量的数据来说 它应
  • while 循环元素状态 cypress

    我有一个问题 我想单击一个按钮直到它消失 但次数可能会有所不同 所以我想检查可见性状态 当可见 true时单击按钮 当可见 false时结束测试 但问题是我不知道如何循环从获取元素到末尾的所有链 单击按钮一次 由于中断而停止 如果我删除中断
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • 单击react.js 切换列表的背景颜色

    我正在尝试创建一个具有以下功能的列表 悬停时更改列表项的背景颜色 单击时更改列表项的背景颜色 在单击的元素之间切换背景颜色 即列表中只有一个元素可以具有 clicked 属性 我已经执行了 onhover 1 和 2 功能 但无法实现第三个
  • Tween JS 基础知识之三个 JS 立方体

    我是 Tween JS 的新手 尝试使用 Tween 制作一个向右移动的简单动画 下面是我在 init 函数中的代码 我使用的是三个 JS var geometry new THREE CylinderGeometry 200 200 20
  • 获取 2 个日期之间的月份名称

    我有两个约会from and to 我想获取这两个日期之间的所有月份名称 以下是我的代码 var monthNames January February March April May June July August September
  • 在 中动态添加链接样式表 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 如何将链接
  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • Angular 5 中 Observable.ForkJoin 的重复 Http 请求

    我有一个 Angular 5 应用程序 组件中包含以下代码 ngOnInit Observable forkJoin this highlightedInsight this insightService getHighlightedIns

随机推荐

  • 如何在JSP中包含HTML?

    我搜索过这个问题 有一些答案 但与我的问题不完全一样 所以 这是我的jsp代码
  • TransactionScope 默认超时值是多少?

    当我创建 TransactionScope 对象时 如下所示 using TransactionScope ts new TransactionScope Do stuff 给定 ts 对象的默认事务超时是多少 根据 David Brown
  • OpenAL - 确定最大来源

    是否有 API 允许您定义底层声音硬件允许的 OpenAL 源 最大数量 在互联网上搜索 我发现了 2 个建议 继续生成 OpenAL 源 直到出现错误 然而 FreeSL OpenAL 包装器 中有一条注释指出 这 非常糟糕 甚至可能使库
  • Keycloak 在登录过程中添加动态用户会话注释

    我是 Keycloak 的新手 并尝试自定义登录阶段以添加动态参数作为用户会话注释 在旧系统中 用户使用用户名 密码和附加参数登录 让我们称之为动态参数 该动态参数在每个用户登录中可以不同 并且取决于用户 当用户向服务发送请求时 它用于安全
  • 支持 v7 库中的 ShareActionProvider 不起作用

    我正在尝试使用本教程中的支持库来实现 ShareActionProviderhttp developer android com reference android support v7 widget ShareActionProvider
  • ListView 中的居中文本项

    如何水平居中对齐文本项ListView in my Layout 老实说 在问这样一个基本问题之前 我在谷歌上搜索了至少一个小时 Thanks
  • 如何在SQL Server上模拟DEADLOCK?

    我正在尝试模拟 SQL Server 上的死锁 worker id salary 1 1 100 2 2 300 事务 1 在 5 秒内完成 TRANSACTION 1 Use dbmcw DECLARE sal1 INT sal2 int
  • 检索 JPA 中通用实体的主键列定义

    假设我有一个使用 JPA 列出实体的通用方法 public
  • Mvapich2 缓冲区别名

    我使用 MAPICH2 启动 MPI 程序并收到此错误 Fatal error in PMPI Gather Invalid buffer pointer error stack PMPI Gather 923 MPI Gather fai
  • “远程计算机是 AAD”但“登录尝试失败”

    我设置远程桌面连接 计算机显示 AzureAD username已经拥有访问权限 非常好 让我们尝试使用连接AzureAD username 不幸的是它说 您的凭据无效 远程计算机已加入 AAD 如果你是 登录您的工作帐户 尝试使用您的工作
  • 如何在谷歌图表上绘制直方图的垂直线?

    如果我画折线图没有问题 但我想把它放在直方图上 https developers google com chart interactive docs gallery histogram https developers google com
  • 如何使用 XSLT 转换来转换 Soap 对象数据

    我必须使用 XSLT 转换来转换以下结果
  • 谷歌地图部分出现,灰色区域代替谷歌服务器的图像

    有时 谷歌地图的部分区域会显示为灰色 有一个问题 如果我们启动 Firebug 图像确实会出现在那个灰色区域 不知道为什么会发生这种情况 有谁经历过这个并找到解决方案 请分享 更新 27 02 2020 不再需要手动触发调整大小事件 如果您
  • ui-router 可选参数不带尾部斜杠

    所以这似乎是一个常见问题 但我还没有找到任何明确的答案 基本上我有一个状态 state users url example id templateUrl angular views example html controller Examp
  • 异步加载js但同步执行

    场景是我有很多 js 文件 根据不同的平台调用不同的文件 所以我有一个问题 因为我想异步加载文件 但这些文件的执行应该同步完成 目前我正在执行这个函数调用 function loadScriptJs src Console log Call
  • 如何在 Mac 上卸载 Composer?

    我已经安装了Composer https getcomposer org用这个命令 php r copy https getcomposer org installer composer setup php php r if hash fi
  • Android 2.1:单个 Activity 中的多个处理程序

    我有不止一个Handlers在活动中 我在中创建所有处理程序onCreate 的主要活动 我的理解是handleMessage 每个处理程序的方法永远不会同时被调用 因为所有消息都放在同一个队列 Activity 线程 MessageQue
  • Azure 持久功能和数据保留

    我可以看到 azure 持久函数使用存储帐户来管理状态和检测 当在具有大量数据的环境中运行持久函数时 表和队列会变得越来越大 并且速度会越来越慢 持久功能清洁是否会自行记录它们 或者这是您需要自己完成的任务吗 经过研究后 开发人员似乎需要为
  • Mongoid分页

    I tried posts Post page params page per page 10 and posts Post paginate page gt 1 per page gt 10 但这两种方法都行不通 undefined me
  • 如何在模板助手中使用 Meteor 方法

    如何定义一个可以在模板助手中调用的 Meteor 方法 我有这两个文件 文件 lib test js Meteor methods viewTest function str return str 文件 客户端 myView js Temp