2016-04-18 11 views
0

プロジェクトでVue.jsを使用していますが、問題があります。どうすればv-forのフィルタを動的にバインドできますか?ある時点で私は要素のidをvueメソッドに渡していますが、どうすればそれをv-for item in items | filterBy @{id} in 'id'に入れることができますか?vue.jsでv-forを動的に設定する

私はちょうど 'v-for'属性をJQuery 'attr'で入れてみましたが、これはうまくいかないようです。私はここでVue.filterまたはvm.$setを使用すべきだと思いますが、私はまだ何かを理解することはできません。

助けていただければ幸いです!

v-for item in items | filterBy id in 'id' 

var vm = new Vue({ 
    ... 
    data:function() { 
    return { 
     id:1 
    } 
    } 
} 

はその後、テキストのような入力にv-modelを使用するか選択して、そこにIDを設定することができます:あなたは自分のv-for属性に変数を使用することができます

var vm = new Vue({ 
    ... 
    methods: { 
    bindId: function(id) { //id is passed from html 
     var repeat = 'item in items | filterBy "' + id + '" in "id"'; 
     $(#main).children('.collection').attr('v-for', repeat); 
    } 
    } 
} 
+0

私はeach()関数を入れて、idsを比較して、$(this).removeを等しくなければならないようにしています。これはひどいですが、少なくとも動作します – Coffee

+0

同じHTMLページまたは外部HTMLリソースからIDを取得していますか?あなたのマークアップは、同じhtmlの –

+0

(でもhtmlではデータベースからロードされます) – Coffee

答えて

1

:たとえば

例えば、https://vuejs.org/api/#filterBy

+0

は別のvueメソッドの中でデータを設定できますか? – Coffee

+1

はい、 'this.id = foo'や' this。$ set( 'id'、foo) 'を使用するだけです。 – Jeff

+0

ありがとう、私はこれを試してみましょう。 – Coffee

関連する問題