无法在#each和#each中获得正确的价值

时间:2013-12-03 07:36:22

标签: meteor handlebars.js

有一些数据:

var data = [
  {id:"a",b:[{name:"1",value:"a"},{name:"2",value:"x"}],c:"a"}
  {id:"b",b:[{name:"2",value:"b"},{name:"3",value:"c"}],c:"b"}
]

并在模板中

...
{{#each data}}
 {{id}}
   select>
  {{#each b}}
       option   {{#if equal value c}} selected   {{/if}}   >
           name
       option>
  {{/each}}
  
{{/each}}
..

功能:

 Template.temp.equal = function(value,test){
     console.log(value);
     console.log(test);
  }

并且“test”未定义,换句话说,在第二个#each中无法读取First #each的值。 我忘记的步骤是什么?如何在第二个#each中获取属性“c”的值?

1 个答案:

答案 0 :(得分:0)

你可以用registerHelper做到这一点;

Handlebars.registerHelper("equal",function(value,test,options) {
    if(value==c)
       return options.fn(this);
    return options.inverse(this);
});

和你的模板

{{#equal value c}}
   selected
{{/equal}}