データの空の配列を初期化し、サーバーからJSONを取得しようとしています。私はそれをログインしたときVue:Observerオブジェクトが自動的に設定された空の配列
問題は、アレイは、常に余分なオブザーバーオブジェクトを持っているということですので、私はこの参照してください。
empty items array: [ob: Observer]
を、ここでのコードの抜粋です:
data() {
return {
items: []
}
},
created() {
this.$http.get('/api/menus').then(function (response) {
console.log('items before', this.items); //THIS LOGS items before: [__ob__: Observer]
this.items = [].concat(response.body);
this.items.forEach(function (item) {
console.log('item', item);
item.$add('active', false);
item.tests.forEach(function (test) {
test.$add('active', false);
});
});
}).catch(function (err) {
console.error('err', err);
});
},
問題がときということです配列内のオブジェクトに新しいプロパティを追加しようとすると、エラーが発生します。
err TypeError: item.$add is not a function
それはオブザーバオブジェクトを配列の一部とみなすために起こります。
正常ですか? $ addが存在するかどうかチェックするだけですか?それをビューでレンダリングすると、Vueはこのオブジェクトを無視しますか?
VueJSは反応性のためにオブザーバーを使用するので、データオブジェクトの各項目はobserver.Checkでこれをチェックしますが、 JsBinを使用していないhttp://jsbin.com/qusugoyame/edit?html,js,console,output –
はい、すべて正しいですが、問題は何ですか? – euvl
$ addメソッドは何が必要ですか? $ set –