- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前,我的 Meteor.js 网站上有一个部分,用于在空格键模板中呈现响应式(Reactive)集合中的标签。
我做了这样简单的事情:
//Coffeescript Template Helper
Template.Albums.tags = ->
tags = []
_.each Albums.find({}).fetch(), (albumObject, index) ->
tags = _.union(albumObject.tags, tags)
return tags;
<!-- Spacebars Template -->
<template name="tagsTemplate">
{{#each tags}}
<li class="interfaceItem">
<a class="tag" href="{{this}}/">
{{this}}
</a>
</li>
{{/each}}
</template>
这按其应有的方式 react 性地工作。
我的问题是:
How can I change what the helper is returning and force an update to the template?
我希望根据搜索栏过滤标签的结果。
因此,当用户开始在 tagsSearchBar 中输入内容时,我需要更改 tagsTemplate 中显示的内容。
我可以进行文本搜索并返回结果,但我不确定如何更新帮助程序,然后强制重新加载模板。
如果我尝试简单地更改模板辅助函数的定义,则模板不会更新为新定义(我认为模板不知道辅助函数的定义更改)。
基本上,我试图弄清楚如何为自己的目的进行空格键 react 。
谢谢大家!
最佳答案
如果您确实想更改辅助函数并在执行此操作时重新渲染模板,一种方法是将函数存储在 react 变量中,然后在辅助程序中从 react 变量获取函数并执行它。不幸的是,您无法在 session 中存储函数,因此您必须使用 Deps.Dependency
:
defaultTagFunction = ->
tags = []
_.each Albums.find({}).fetch(), (albumObject, index) ->
tags = _.union(albumObject.tags, tags)
return tags
searchTagFunction = ->
# do something else
tagFunction = ->
tagFunctionDependency = new Deps.Dependency()
Template.Albums.tags = ->
tagFunctionDependency.depend()
return tagFunction() # tagFunction.call(this) if you need the data context
setTagFunction = (fn) ->
tagFunction = fn
tagFunctionDependency.changed()
setTagFunction(defaultTagFunction)
# later
setTagFunction(searchTagFunction)
但是,可能有更合适的解决方案。如果您在搜索栏中输入内容时的界面行为与搜索栏为空时的界面行为完全不同,您可能需要一个单独的模板,然后决定以 react 方式显示哪个模板。如果行为基本相同,则将此逻辑添加到现有帮助程序中可能会更简单,例如:
Template.Albums.tags = ->
searchText = Session.get("tagsSearchBar")
if searchText is ""
cursor = Albums.find({})
else
cursor = Albums.find({tags: searchText})
tags = []
_.each cursor.fetch(), (albumObject, index) ->
tags = _.union(albumObject.tags, tags)
return tags
关于javascript - 渲染模板后,如何更改空格键中的模板辅助函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23863710/
我在tinyMCE中遇到了一个奇怪的问题,即我无法在完整框架之外进行复制。整个问题仅在FireFox中运行,因为它仅支持FF,因此问题仅限于FF。 我使用AJAX调用来动态加载tinyMCE的一个或多
我的 JS 在这里: $('input[type=submit]').click(function () { var val = $('#message_content').scedito
我需要一些关于如何解决我的问题的想法。我有以下带有表格的 html 模板。它显示 5 行,在每行的末尾(在最后一个 td 中)有一个按钮触发 Bootstrap 模式(弹出窗口)。我正在使用空格键 {
我有以下代码: ...... 如何在空格键模板的 if 条件中使用 AND/OR ? 最佳答案 空格键无法处理逻辑表达式,因此您需要创建一个帮助程序来处理计算。 其实你可以实现and具有嵌套 if
我正在用 JavaScript 编写代码,目标是 Chrome。 现在,考虑以下情况: 我在网页上按空格/退格键 vs 我在文本框上按空格键/退格键 通过使用 (goog.events.listen
我在实现 RoutedUICommand 的 RoutedCommand 类中处理命令。如果需要,这将帮助我通过检查他们的 CanExecute 和 Execute 来阻止或覆盖命令。我可以覆盖 Ed
基本上,我想制作一个计算 10 秒内空格键按下/按钮点击次数的游戏。我制作了一个倒数计时器,两个计数器都工作正常 我找不到停止按键计数的方法(在计时器停止后),所以我使用了“禁用”按钮,但如果有更好的
我遇到了一个问题,selenium 无法按住不在此列表中的键 - Keys.SHIFT, Keys.CONTROL, Keys.ALT, Keys.META, Keys.COMMAND, Keys.L
我有一个集合,其值类似于 { "pctFail": "0.3515500159795462"} ,当我将其传递给模板并显示为 {{myTemplate}}% 时,它在我的 html 中显示为0.351
{{#each}} 中 {{#if}} 的这个简单示例产生了意想不到的(对我而言)结果: HTML: test {{> test yes=true}} template nam
我使用下面的代码创建一个带有对话的 MessageBox。默认情况下,yes 按钮具有焦点。如果我不小心按了空格键,对话框就会明白我选择了是。我只希望按下回车键触发事件。有没有办法禁止 Space 键
我愿意根据 Session 变量设置我的应用程序的 header 。 这是空格键模板: {{#if session 'header'}} {{#if session 'header_le
我的问题: ^space & c:: send {F2} send {Escape} 但它没有用,我如何模拟 Ctrl+Space + AlphabeticaklKey ? 最佳答案 正如我之前的演讲
我正在 Visual Studio 2008 中开发 MFC 应用程序。我有一个带有复选框的 CListCtrl 对象。我想知道是否有一种简单的方法可以让空格键切换所有突出显示的项目。现在,在按下空格
我有一个本地全屏 AIR 应用程序(从服务器加载多个 SWF),我正在尝试使用 ALT+作为捷径。 但 Windows 操作系统拦截了 ALT键,例如当我按下 ALT+Space 时显示左上角窗口菜单
我刚刚开始使用 Eclipse,我注意到当我开始输入本地变量名称时,它不会像 Visual Studio 那样提供建议,直到我按 Ctrl+Space 。有什么办法让它自动执行此操作吗?我发现 Ctr
Enter keyCode(13) 在所有浏览器上都能正常工作。 空格键 keyCode(32) 我在 Chrome 上测试工作正常但在 Firefox 上没有响应。我使用了以下代码: fu
我有一个 jQuery UI 对话框,其中有足够的内容来触发垂直滚动条的出现。我发现使其滚动的唯一方法是单击并拖动滚动条,或单击滚动条区域 - 即无法使用 PgUp 或 PgDn 键、箭头键或空格键使
当我使用 HTML5 contenteditable 时,空格键在 button 元素中不起作用。但它在 div 元素中运行完美。我怎样才能让它工作?有人可以帮助我吗? 请在这里查看:https://
我是一名优秀的程序员,十分优秀!