次のように、Vue.jsデータオブジェクト(つまり、連想配列)からプロパティ/キーを削除するにはどうすればよいですか:
_var vm = new Vue({
data: {
users: {
foo : { firstName: ..., lastName: ... },
bar : { firstName: ..., lastName: ... }
}
},
methods: {
someFunction : function ()
{
// how to remove `users.foo`?
}
}
});
_
グーグルで、私はこれらの2つの方法を見つけましたが、両方とも機能しません:
delete this.users.foo;
_はDOMを更新していませんthis.users.splice('foo', 1);
はまったく動作していません(おそらくオブジェクトではなく配列でのみ動作しています)答えは:
Vue.delete(users, 'foo');
それを見つけるのにしばらく時間がかかりました、だからここに投稿しています;-)
https://github.com/vuejs/vue/issues/3368#issuecomment-236642919
_vm.$delete
_は_Vue.delete
_のエイリアスであり、this.delete()
のようなものを試すとエラーが発生することを知っておくことが重要です。あなたの例では、答えは次のようになります。
_this.$delete(this.users, 'foo')
_
または
_vm.$delete(vm.users, 'foo')
_
オブジェクトの新しいコピーを作成する必要があるため、Vue変更があることを知ることができます。
ES6
const users = { ...this.users };
delete users['foo'];
this.users = users
またはスプレッド演算子なし
const users = Object.assign({}, this.users);
delete users['foo'];
this.users = users