2017-05-30 8 views
2

私はリストをレンダリングし、その中のサブリストをレンダリングしています。私はlist-{id}のような名前になる私の内側のリストへの参照を持っていたい。しかし、私はこれを達成することができません。私は価値が評価されていない何らかの理由だと思うVue.jsでrefを動的に作成できません

$vm0.$refs 
Object {getScrollableRef(company.id): Array(13)} 

<ul class="scrollable-list" ref="getScrollableRef(company.id)"> 
    <li v-for="operation in getOperations(company.id)"> 
    {{company.name}} 
    </li> 
</ul> 

私は$refsオブジェクトを調べる:ここ

は、コードスニペットです。誰もこれに直面していますか?

編集:私はあなたの例では、この問題https://github.com/egoist/vue-mugen-scroll/issues/14

答えて

3

を解決しようとしています、あなたはrefは文字通り"getSchoolableRef(componany.id)"命名されるように指定されています。そのため、$refsオブジェクトにはgetScrollableRef(company.id)プロパティが含まれ、その値として13要素の配列が含まれています。

あなたがrefの名前としてgetSchoolableRefメソッドの結果を使用したい場合は、あなたがv-bindや速記コロンを使用することができます。

<ul class="scrollable-list" :ref="getScrollableRef(company.id)"> 

あなたが述べたように、$refsは、反応性および結合を変更しないでコンポーネントが初期化された後の値は、$refsのプロパティ名を更新しません。ただし、コンポーネントが初期化されるときに、refの名前を動的に設定できます。

+1

ここで、refをバインドしようとしないでください。これは正しいです? https://vuejs.org/v2/api/#ref – aks

+0

良いキャッチ。私は答えを更新します。つまり、 '$ refs'は反応しないので、バウンド値の更新を変更すると更新されません。しかし、ref名を初期化するために 'v-bind'を使うことには問題はありません。 – thanksd

関連する問題