2016-11-06 8 views
3

vue.jsのオブジェクト/プロパティdataをプログラムで更新する方法はありますか?vue.jsのデータプロパティ/オブジェクトを更新する

data: function() { 
    return { 
     cars: true, 
    } 
} 

とイベントがトリガされた後、私は次のようにdataオブジェクトが見てみたい:例えば、私のデータオブジェクトは、私のコンポーネントをロードする場合、私が試した

data: function() { 
    return { 
     cars: true, 
     planes: true 
    } 
} 

<script> 

module.exports = { 

    data: function() { 
     return { 
      cars: true 
     } 
    }, 

    methods: { 
     click_me: function() { 
      this.set(this.planes, true); 
     } 
    }, 

    props: [] 

} 

</script> 

しかし、これは私にエラーthis.set is not a functionを与えます。助けてもらえますか?

ありがとうございます!

+0

のためにあなたは私たちにあなたが 'this.set'を書いているコンテキストを表示することができますか? – RobertAKARobin

+0

はい - 質問を更新しました。 –

答えて

7

Vueでは、すでに作成されたインスタンスに新しいルートレベルのリアクティブプロパティを動的に追加することはできません。

data: function() { 
    return { 
     someObject:{ 
      cars: true, 
    } 
} 

およびsetメソッドとプロパティを追加します:しかし、それはあなたがオブジェクトを作成し、そのような新しいプロパティを追加することができので、ネストされたオブジェクトに反応するプロパティを追加することが可能です

methods: { 
     click_me: function() { 
      this.$set(this.someObject, 'planes', true) 
     } 
    } 

vue 1.x使用Vue.set(this.someObject, 'planes', true)

reactivity

+0

こんにちは - 私はそれを試みましたが、私は 'vue.common.jsを取得し続けていますか?e881:2964 Uncaught TypeError:exp.trimは関数ではありません(...)' –

+1

@ user1547174これはlook vue 1.xです。 (this.someObject、 'planes'、true) ' –

関連する問題