流星,调用 Blaze.renderWithData 不会触发 onRendered 钩子
Meteor, calling Blaze.renderWithData does not trigger onRendered hook
我正在写一个 meteor 包,并在上面写一些单元测试。该包包含一些模板,所以我也想测试这些模板。该模板有一个 onRendered 钩子。在我的单元测试中,我调用函数 Blaze.renderWithData 来呈现我想要测试的模板。我希望此函数调用 onRendered 挂钩。然而,事实并非如此。
我用茉莉花做单元测试。测试代码如下:
for i in [0...tests.length]
oneGroupTests = tests[i]
describe oneGroupTests.name, ->
for i in [0...oneGroupTests.tests.length]
test = oneGroupTests.tests[i]
do (test) ->
it test.name, ->
expect(test.template).toBeDefined()
expect(test.test).toBeDefined()
div = document.createElement("div")
Blaze.renderWithData(Template[test.template], test.data, div)
if test.before
test.before($(div))
test.test($(div))
$(div).remove()
知道如何以编程方式调用 onRendered 挂钩吗?
谢谢。
在测试 onRendered
例程是否触发之前尝试调用 Tracker.flush()
。在这里查看更多详细信息:
http://docs.meteor.com/#/full/tracker_flush
您遇到此问题的原因可能是回调没有立即触发,而是仅在下一个 "computation" 周期触发。
http://docs.meteor.com/#/full/tracker_computation
调用 Tracker.flush()
将强制 Meteor 重新计算所有待处理的计算。
我正在写一个 meteor 包,并在上面写一些单元测试。该包包含一些模板,所以我也想测试这些模板。该模板有一个 onRendered 钩子。在我的单元测试中,我调用函数 Blaze.renderWithData 来呈现我想要测试的模板。我希望此函数调用 onRendered 挂钩。然而,事实并非如此。
我用茉莉花做单元测试。测试代码如下:
for i in [0...tests.length]
oneGroupTests = tests[i]
describe oneGroupTests.name, ->
for i in [0...oneGroupTests.tests.length]
test = oneGroupTests.tests[i]
do (test) ->
it test.name, ->
expect(test.template).toBeDefined()
expect(test.test).toBeDefined()
div = document.createElement("div")
Blaze.renderWithData(Template[test.template], test.data, div)
if test.before
test.before($(div))
test.test($(div))
$(div).remove()
知道如何以编程方式调用 onRendered 挂钩吗?
谢谢。
在测试 onRendered
例程是否触发之前尝试调用 Tracker.flush()
。在这里查看更多详细信息:
http://docs.meteor.com/#/full/tracker_flush
您遇到此问题的原因可能是回调没有立即触发,而是仅在下一个 "computation" 周期触发。
http://docs.meteor.com/#/full/tracker_computation
调用 Tracker.flush()
将强制 Meteor 重新计算所有待处理的计算。