Javascript js-如何将循环变量传递给事件处理程序

Javascript js-如何将循环变量传递给事件处理程序,javascript,weex,Javascript,Weex,我正在运行以下代码: <template> <div> <text onclick="log(items[0])">outside the loop</text> <div repeat="item in items"> <text onclick="log(item)">{{item}}</text> </div>

我正在运行以下代码:

<template>
    <div>
        <text onclick="log(items[0])">outside the loop</text>
        <div repeat="item in items">
            <text onclick="log(item)">{{item}}</text>
        </div>
    </div>
</template>
<script>
    module.exports = {
        data: {
            items: ['foo']
        },
        methods: {
            log: function(item) {
                console.log(item);
            }
        }
    }
</script>

当我单击lop外部时,我看到了foo,但当我单击foo时,我看到了未定义。如何将循环变量传递到事件处理程序中?

使用循环范围中可用的$index变量:

<div repeat="item in items">
  <text onclick="log(items[$index])">{{item}}</text>
</div>

此演示在本机代码环境中正常。我使用iOS WeexSDK测试它。 也许这是浏览器中的一个bug

顺便说一下,您可以在最新的WeexSDK中使用vuejs语法,循环变量也没有问题

演示:

如果我使用vue

<template>
    <div>
        <text @click="log(items[0],$event)">outside the loop</text>
        <div v-for="item in items">
            <text @click="log(item,$event)">{{item}}</text>
        </div>
    </div>
    </template>
    <script>
    module.exports = {
        data: {
            items: ['foo']
        },
        methods: {
            log: function(item,e) {
                console.log(item);
            }
        }
    }
    </script>
我认为这是不明确的。实际上,即使使用log$index,我也看到了未定义的