2017-04-07 27 views
0

Vue.jsライブラリVuetifyを使用して、作成するコンポーネントの内部にいくつかのテキストフィールドコンポーネントを追加しています。入力の検証を提供するために、テキストフィールドコンポーネントのhasErrorプロパティを取得したいと思います。私はプロパティのパスが知っている:this.$children[3]._computedWatchers.hasError.active。しかし、これらのプロパティにアクセスする別の方法があるかどうかを知りたいと思います。多分私は何かを欠いているでしょうか?Vuetifyコンポーネントからエラーを取り込む良い方法はありますか?

<template> 
    <div class="register"> 
    <form> 
     <div> 
     <v-text-field name="new-user-email" 
         label="Email" 
         type="email" 
         single-line 
         required></v-text-field> 
     </div> 
     <div> 
     <v-text-field name="user-user-password" 
         label="Password" 
         type="password" 
         single-line 
         required> 
     </v-text-field> 
     </div> 
     <div> 
     <v-text-field name="new-user-password-confirmation" 
         label="Confirm Password" 
         type="password" 
         single-line 
         required> 
     </v-text-field> 
     </div> 
     <div @click="registerNewUser"> 
     <v-btn>Register</v-btn> 
     </div> 
    </form> 
    </div> 
</template> 

<script> 
export default { 
    name: 'register-new-user', 
    data() { 
    return { 
     checked: false 
    }; 
    }, 
    methods: { 
    registerNewUser() { 
     console.log(this.$children[3]._computedWatchers.hasError.active) 
     console.log('Register a new user') 
    } 
    } 
}; 
</script> 

答えて

2

このようなv-text-fieldコンポーネントにref属性を追加します。

<v-text-field 
    ref="password-confirmation" 
    name="new-user-password-confirmation" 
    label="Confirm Password" 
    type="password" 
    single-line 
    required 
></v-text-field> 

次に、あなたがそうのような(そのプロパティとメソッドと一緒に)VuetifyテキストフィールドコンポーネントのVueComponentインスタンスを参照することができます。

methods: { 
    registerNewUser() { 
    console.log(this.$refs['password-confirmation'].hasError) 
    } 
} 

Here's documentation on refs.

+0

優秀、それはまさに私が探していたものでした。どうもありがとう。 – James

+0

何らかの理由で '... hasError.active'を使うと、未定義のエラーが生成されます。 'hasError'はうまくいきます。 – James

+1

それはちょうどプロパティ名になります。私は答えを更新した – thanksd

関連する問題