2017-09-23 11 views
0

私は、選択ボックスにどのような選択をしたかに応じて、タグと更新の完全な計算配列を持っています。私はこの配列を取ってメソッドに渡し、 "結果"にアクティブなクラスがあるかどうかを更新するメソッドを実行したいと思います。私はこの要素でforEachを実行することはできないという配列を得ることができます。メソッド内で返された計算された配列にアクセスして操作します

いくつかのトピックを通して、計算されたプロパティがそのように動作しないことを理解していますが、確かにこれを回避する方法があります。

https://jsfiddle.net/39jb3fzw/6/

ショートスニペット

methods: { 
     updateOutput() { 
      var tags = this.tagArray; 
      tags.forEach(function(tag) { 
      console.log(tag); 
      }) 
     } 
    }, 
    computed: { 
     concatenated: function() { 
      var ret = this.selected.concat(this.selected2, this.selected3); 
      this.tagArray = ret; 
      //this.updateOutput(); 
      return ret; 
     } 
    } 

全出力

https://jsfiddle.net/39jb3fzw/6/

おかげで再び:slight_smile:

答えて

0

問題はラインであるように見えます:

var ret = this.selected.concat(this.selected2, this.selected3);

コードの行が空の文字列ではなく配列を返すされていること。これは、this.selectedXが配列ではなく文字列であるためです。これはなぜtag.forEachが定義されていないのかを説明します。 forEachがStringプロトタイプに存在しません。

あなたは、配列ではなく、そこから

var ret = [ this.selected, this.selected2, this.selected3 ]

をやっているあなたは、これが

を助け this.tagArray

retへの希望を設定することができ、これを作成することができます

関連する問題