Cla*_*a B 7 jquery coffeescript meteor meteor-blaze
我有一个流星模板渲染一些我需要执行jquery函数的html.现在,我已经设置了一个依赖项,这样每次绑定到该模板的数据(对象列表)都会发生变化时,该函数就会运行.我不确定这是我正在尝试做的最好的方法,但每次添加/删除/重新排列对象时它都会运行该功能,所以这是一个开始.
但是,该函数似乎在重新呈现模板之前运行,因此前一组块得到了jquery-fied,但是我刚刚在该操作上添加的任何块都没有.
有没有办法强制函数在呈现/更新模板后运行?任何帮助深表感谢!
(类似的问题在这里 - 流星反应jquery - 但它没有任何答案)
以下是一些可能相关的代码位:
Template.showPictures.rendered =
Deps.autorun () ->
album = Albums.findOne(Session.get("selectedAlbum"))
if (album)
pictures = album.orderedPictures()
MyApp.loadJQuery()
Template.showPictures.helpers
pics: ->
MyApp.myDependency.depend()
album = Albums.findOne(Session.get("selectedAlbum"))
album.orderedPictures()
Run Code Online (Sandbox Code Playgroud)
(为什么我的Template.rendered东西中的自动运行?不确定.这似乎是一个好的地方,但这是我第一次真正处理依赖,所以我可以完全离开这里.任何想法出了什么问题会很棒.)
您可以使用Tracker.afterFlush(并且Tracker是新名称Deps):
Template.showPictures.rendered =
Tracker.autorun () ->
album = Albums.findOne(Session.get("selectedAlbum"))
if (album)
Tracker.afterFlush ->
// This will get executed when (among other things)
// the UI has been updated.
pictures = album.orderedPictures()
MyApp.loadJQuery()
Run Code Online (Sandbox Code Playgroud)
但是,Meteor方式更像是这样的:
<template name="things">
{{#each things}}
{{> thing}}
{{/each}}
</template>
<template name="thing">
<!-- Show the thing here... -->
</template>
Run Code Online (Sandbox Code Playgroud)
Template.things.helpers({
things: function(){
return Things.find()
}
})
Template.thing.rendered = function(){
// This get executed each time a new thing is rendered!
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3171 次 |
| 最近记录: |