Javascript Meteor 0.8.0,用户界面需要有效的属性名称

Javascript Meteor 0.8.0,用户界面需要有效的属性名称,javascript,coffeescript,meteor,meteor-blaze,Javascript,Coffeescript,Meteor,Meteor Blaze,这是什么原因?我检查了我的数据上下文,这实际上传递了适当的数据,这在以前版本的Meteor中起作用 Meteor UI中出现异常:错误:应为有效的属性名称“”、null或对象 HTML: 完整堆栈跟踪: Exception in Meteor UI: Error: Expected valid attribute name, '', null, or object at Object.Spacebars.attrMustache (http://localhost:3000/packag

这是什么原因?我检查了我的数据上下文,这实际上传递了适当的数据,这在以前版本的Meteor中起作用

Meteor UI中出现异常:错误:应为有效的属性名称“”、null或对象

HTML:

完整堆栈跟踪:

Exception in Meteor UI: Error: Expected valid attribute name, '', null, or object
    at Object.Spacebars.attrMustache (http://localhost:3000/packages/spacebars.js?5d478ab1c940b6f5a88f78b8adc81a47f022da77:137:11)
    at HTML.OPTION.$dynamic (http://localhost:3000/client/views/labs/template.labEdit.js?b7b4fc16112efc0d900b152a545a4279764a2728:61:26)
    at Object.HTML.evaluateAttributes (http://localhost:3000/packages/htmljs.js?697b0dd0fbdd1f8984dffa3225121a9b7d0b8609:347:21)
    at http://localhost:3000/packages/ui.js?b523ef986d3d39671bcb40319d0df8982acacfe8:2351:28
    at callWithNoYieldsAllowed (http://localhost:3000/packages/deps.js?7afb832ce6e6c89421fa70dc066201f16f9b9105:74:5)
    at _.extend._compute (http://localhost:3000/packages/deps.js?7afb832ce6e6c89421fa70dc066201f16f9b9105:212:7)
    at new Deps.Computation (http://localhost:3000/packages/deps.js?7afb832ce6e6c89421fa70dc066201f16f9b9105:144:10)
    at Object._.extend.autorun (http://localhost:3000/packages/deps.js?7afb832ce6e6c89421fa70dc066201f16f9b9105:361:13)
    at materialize (http://localhost:3000/packages/ui.js?b523ef986d3d39671bcb40319d0df8982acacfe8:2346:30)
    at materialize (http://localhost:3000/packages/ui.js?b523ef986d3d39671bcb40319d0df8982acacfe8:2293:7) 
这是编译blaze的一部分,它实际上抛出了错误:

UI.block(function() {
    var self = this;
    return [ "\n                ", HTML.OPTION({
      "class": "controls",
      $dynamic: [ function() {
        return Spacebars.attrMustache(self.lookup("state"), Spacebars.dot(self.lookup(".."), "status"));
      } ]
    }, function() {
      return Spacebars.mustache(self.lookup("."));
    }), "\n              " ];
  })), "\n            "), "\n          "), "\n          ", HTML.DIV({
    "class": "col-md-4"
  }, "\n            ", Spacebars.With(function() {

因此,您可以使用
isRegion
帮助程序替换
curRegion
帮助程序:

Template.labEdit.helpers
  isRegion: (region) -> @_id is region
并将HTML行更改为:

<option class="controls" value='{{_id}}' selected={{isRegion ../regionId}}>{{title}}</option>
{{title}

在我看来,它还使helper函数和helper调用更具可读性(和灵活性)。

有趣的是,尽管我得到了这些异常,但一切似乎都很正常。非常奇怪…我相信这与
{{curRegion../regionId}
部分有关。该帮助程序做什么/返回什么?基本上,它是一个帮助程序,获取父数据上下文项regionId,并将其与此进行比较。_id,其中'this'是由{{#each}迭代的当前对象。如果ID匹配,则返回html标记属性“selected”,以在下拉列表中选择正确的项。这是可行的,但不知怎么的,这是一个错误。哇,接球不错。谢谢
Template.labEdit.helpers
  isRegion: (region) -> @_id is region
<option class="controls" value='{{_id}}' selected={{isRegion ../regionId}}>{{title}}</option>