0

我正在使用 Meteor、FlowRouter 和 Parsley 进行验证。当我重新加载应用程序并使用表单进入页面时,我收到此错误并且欧芹在表单上不起作用:

You must bind Parsley on an existing element.

如果我离开页面并返回,它工作正常。我有以下代码初始化绑定:

Template.report.onRendered ->
   report = Reports.findOne(_id: FlowRouter.getParam('reportId'))

   if report.status == 'finalized'
      Session.set('showDistributeReport', true)
   else
      Session.set('showDistributeReport', false)

   $('#status-js').val(report.status)
   $('#report-form-js').parsley()

我一直在使用 Parsley,在其他页面上没有看到这个问题。任何帮助将不胜感激。

4

1 回答 1

0

我想出了一个解决办法,但我不知道为什么我必须这样做。如果有人有任何意见,那就太好了。我不得不将设置会话变量的部分移到 onCreated 方法中。这是我现在拥有的代码。

Template.report.onCreated ->
   report = Reports.findOne(_id: FlowRouter.getParam('reportId'))

   if report.status == 'finalized'
      Session.set('showDistributeReport', true)
   else
      Session.set('showDistributeReport', false)


Template.report.onRendered ->
   report = Reports.findOne(_id: FlowRouter.getParam('reportId'))

   $('#status-js').val(report.status)
   $('#report-form-js').parsley()
于 2015-12-06T19:14:37.880 回答