javascript - 在 vue.js 中将对象绑定(bind)到元素属性

标签 javascript binding vue.js

考虑

<ul>
  <li v-for="o in objects" v-on:click="click"></li>
</ul>

其中的对象类似于

var objects = [
    { derp: 1 },
    { derp: 2 },
];

在我的click()函数,我想访问o实例。

function click(event) {
    console.log(event.target.myObject);
}

<li v-for="o in objects" v-on:click="click" v-bind:data-myObject="o"></li>

然后使用 event.target.getAttribute("data-myObject") 获取对象产生 string ,不是object .

我可以使用索引来完成这项工作,然后从 this.$data.objects[index] 查找对象。这对我来说似乎是落后的,因为我期望某种绑定(bind)方式 o生成的目标实例 <li>元素。

如何做到这一点?

最佳答案

您需要在调用函数中传递对象,如下例所示

var app = new Vue({
  el:'#app',
  data:{
    myObj: [
      { derp: 1 },
      { derp: 2 },
    ],
    output:''
  },
  methods:{
    myFunc: function(obj){
      this.output = obj;
      console.log(obj);
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
<div id="app">
  <ul>
    <li v-for="o in myObj" v-on:click="myFunc(o)">{{o.derp}}</li>
  </ul>
  {{output}}
</div>

关于javascript - 在 vue.js 中将对象绑定(bind)到元素属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48597129/

相关文章:

javascript - jQuery - 根据文本内容动态查找并滚动到元素

javascript - 自动生成的 html 上未调用 jquery 函数

mvvm - 我的用户控件和 ViewModel 之间的绑定(bind)

angularjs - Angular Material 输入验证错误消息

javascript - Html 地理定位在我的移动网络应用程序上不起作用 | Spring MVC

Javascript:如何创建 CSS3 动画

c# - 获取DataGrid宽度

javascript - Vuejs 中使用静态 JSON 进行动态路由

javascript - VueJS 连接不相关的(如在父/子中)组件

javascript - 如何在 VueJs 中重用 ViewModel?