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

时间:2017-02-12 14:16:45

标签: 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>
    </div>
</template>
<script>
    module.exports = {
        data: {
            items: ['foo']
        },
        methods: {
            log: function(item) {
                console.log(item);
            }
        }
    }
</script>

当我点击“在lop外面”时,我看到foo,但是当我点击“foo”时,我会看到undefined。我怎么能把循环变量传递给事件处理程序?

3 个答案:

答案 0 :(得分:1)

这个演示在本机代码环境中是可以的(我使用iOS WeexSDK测试它)。 也许这是浏览器中的一个错误。

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

演示:http://dotwe.org/vue/658afd881a720ab0c877a5bb2d88b9f4

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

如果我使用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>