遍历Ractivejs胡子中的父母

时间:2015-05-06 13:41:08

标签: javascript mustache ractivejs

我正在尝试在循环上方获取一个对象,这样我就可以抓住它来获取一个函数但是在尝试../../this时我得到了未定义的内容,我认为在查看docs后我可以这样做

我的代码目前看起来像这样:

{{#each locations}}
    <input type="text" name="location[]" value="{{location}}">
    <ul>
        {{#each typeaheadValue}}
            <li on-click="selectValue:{{../../this}}">{{value}}</li>
        {{/each}}
    </ul>
{{/each}}

每个location对象都包含一个ID和其他属性,我想在selectValue函数中访问它,但是在尝试查找当前父对象时我得到了未定义。

我是否必须改为获取父级的索引并将其传递给函数以获取我想要的位置对象?

1 个答案:

答案 0 :(得分:1)

您不能在限制参考的末尾使用this。您可以使用索引和集合直接在模板中获取对当前迭代项的引用:

new Ractive({
  el: document.body,
  template: '#template',
  data: {
    locations: [ "Portland", "Brooklyn", "Paris"],
    typeaheadValue: [ "one", "two", "three" ]
  }
});
<script src="http://cdn.ractivejs.org/edge/ractive.js"></script>

<script id='template' type='text/html'>
{{#each locations:l}}
    <input type="text" name="location[]" value="{{.}}">
    <ul>
        {{#each typeaheadValue}}
            <li on-click="selectValue:{{locations[l]}}">{{.}} - {{locations[l]}}</li>
        {{/each}}
    </ul>
{{/each}}

</script>