#はじめに
このようなデータがv-forで使用され、中身のオブジェクトをデータとして保持したい時がある。
その時の例を備忘録として残す。
data () {
return {
members: [
{
id: 1,
name: 'sato'
},
{
id: 2,
name: 'tanaka'
},
{
id: 3,
name: 'kobayashi'
}
],
}
}
##選択要素のidを取得
- レンダリングされたnameの元のオブジェクトからidを取得するイベントを設定する。
- 取得したidをもとに__dataに保持__
data() {
return {
selectedMemberId: undefined
}
},
methods: {
setId: function () {
this.selectedMemberId = member.id //membersのオブジェクト
}
}
##取得したidを元にオブジェクトをデータとして保持
__lodash__を使って配列操作
- vueインスタンスを__変数に代入__
- 取得したidと一番最初に一致するidをもつ__オブジェクトを返す__
computed: {
currentMember: function () {
const self = this
return _.find(self.members, function (member) {
return thumb.id === self.selectedMemberId
})
},
###computedの中身
- スコープがcurrentMemberになってしまうためvueインスタンスを変数に代入
- _.find(lodash.find)は条件に一致する一番最初の要素を取得