为啥 Meteor 模板助手不在上下文中返回变量?

Posted

技术标签:

【中文标题】为啥 Meteor 模板助手不在上下文中返回变量?【英文标题】:Why does Meteor template helper not return variable in context?为什么 Meteor 模板助手不在上下文中返回变量? 【发布时间】:2014-05-10 08:21:39 【问题描述】:

由于某种原因,这根本不起作用。

user_slugged username

username 是模板可用的变量。但是,它在帮助程序中给了我一个 null / undefined 值。

这是我的帮助代码

UI.registerHelper('user_slugged', function(username) 

... other stuff... return things.



我遇到的问题是,当我尝试这样的user_slugged 'Hello' 时,它做的一切都正确并返回了预期的结果。

但是,当我尝试 user_slugged username 时,它似乎不起作用,即使我可以在同一行代码中轻松显示 username

这看起来很奇怪,现在我在想Meteor 0.8.0 中向车把助手发送参数的方式可能已经改变。如果是这样,如果有人能指出我正确的方向或给我这个问题的答案,那就太好了。

编辑:澄清一下,我可以在与user_slugged username 相同的行中使用username,所以这样的东西可以工作

<a href="user_slugged username">username</a>

username 是模板中可用的对象属性,并且在我尝试将其作为参数发送给助手时。

【问题讨论】:

如果您只是在模板中的那个确切位置使用username,它可以工作(显示null/undefined 以外的其他内容)?可能是您不小心更改了 user_slugged 调用周围的 context 吗? 我在同一行使用用户名,没有任何模板上下文更改 @user1952811 是 username 对象或助手本身的属性吗? 它是一个对象的属性。 【参考方案1】:

我不确定为什么会发生这种情况(也许有一个全局帮助器 username?),但您应该可以通过编写轻松修复它

user_slugged ./username

而不是

user_slugged username

点始终表示当前数据上下文,因此渲染引擎不会对此感到困惑。

【讨论】:

以上是关于为啥 Meteor 模板助手不在上下文中返回变量?的主要内容,如果未能解决你的问题,请参考以下文章

Meteor - 从子助手访问父模板变量

Meteor:从另一个助手访问模板助手(或变量)

如何从 Meteor 模板助手返回模板?

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

Meteor 模板和模板助手

我应该在路由逻辑或 Meteor 模板助手中提供数据吗?