Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在Meteor模板中使用{@…}会导致错误?_Javascript_Meteor_Handlebars.js_Spacebars - Fatal编程技术网

Javascript 为什么在Meteor模板中使用{@…}会导致错误?

Javascript 为什么在Meteor模板中使用{@…}会导致错误?,javascript,meteor,handlebars.js,spacebars,Javascript,Meteor,Handlebars.js,Spacebars,用一个简单的 {{#each array}} {{@index}}: {{this}} {{/each}} 错误泛滥。对象的{{@key}}也会发生同样的情况。为什么会发生这种情况?查看源代码:它看起来不像是用Meteor打包的Handlebar版本支持的{{@..}表达式集。这对我来说肯定也是一个挫折。与此同时,我制作了一个Handlebar助手,将任何内容解析为命名的“key”和“value”对象: Handlebars.registerHelper('key_value', functi

用一个简单的

{{#each array}}
{{@index}}: {{this}}
{{/each}}

错误泛滥。对象的{{@key}}也会发生同样的情况。为什么会发生这种情况?

查看源代码:它看起来不像是用Meteor打包的Handlebar版本支持的{{@..}表达式集。

这对我来说肯定也是一个挫折。与此同时,我制作了一个Handlebar助手,将任何内容解析为命名的“key”和“value”对象:

Handlebars.registerHelper('key_value', function(context, options) {
  var result = [];
  _.each(context, function(value, key, list){
    result.push({key:key, value:value});
  })
  return result;
});
这将用于每个操作员,如:

<dl class="attributes">
  {{#each key_value attributes}}
    <dt>{{key}}</dt><dd>{{value}}</dd>
  {{/each}}
</dl>

我也刚刚将此发布到相关的

谢谢,我不知道。更简洁的实现是使用u.map而不是u.each:return u.mapcontext,functionvalue,key{return{key:key,value:value};};但是请注意,您的变通方法会显著影响应用程序的渲染性能。无论何时更改任何单个项目,都将重新呈现每个项目。这可能是大型收藏的一个问题。啊,是的,这绝对是一个好的观点。我认为Meteor将在以后的版本中解决这个问题。他们的新UI演示描述了更好的标记管理。希望它将包括键/值类型列表。