Reputation: 805
I am trying to fix the following error from a component, but it's still failing. The error is the following:
[Vue warn]: Unknown custom element: - did you register the component correctly? For recursive components, make sure to provide the "name" option.
In my password component, following script, I have the following:
<template>
<div class="form-group form-material floating" data-plugin="formMaterial">
<input id="password" type="password" class="form-control" name='password'>
<label class="floating-label">Create password</label>
<span class="password-info"><i class="fa fa-info-circle"></i></span>
<div class="password-rules">minimum 6 characters</div>
<span v-if="this.error != null" :class="['invalid-feedback', {'inline': this.error != null}]">
<strong>{{ error }}</strong>
</span>
</div>
</template>
<script>
import Password from 'password-strength-meter'
export default{
props: ['error'],
mounted: function(){
const $password = $('#password', this.$el);
$password.password({
showText: false,
animate: true,
});
}
}
</script>
<style lang="scss">
@import '~password-strength-meter/dist/password.min.css';
</style>
The problem is that the vue component is not loading when the page opens, and the error disappears on refresh.
In laravel blade, I am using it in the following way:
<password-input @if($errors->has('password')) :error="'{{$errors->first('password')}}'" @endif></password-input>
In the app.js
I have following script
new Vue({
el: '#app'
});
Can someone guide me on how I fix it? I would appreciate if someone could guide me about this issue. I have seen this question but it does not resolved my problem.
Upvotes: 1
Views: 1107
Reputation: 136
Hey did you ever get to the bottom of this? I have been struggling all day with the same thing. The intermittent part has been killing my productivity lol. Anyway. Like you I was using ="this.myVar"
in the <template>
section instead of ="myVar"
and when I changed that the issue hasn't been occurring since.
Upvotes: 0
Reputation: 41
Was the component registered, usually when you create your Vue instance in app.js file.
const app = new Vue({
el: '#app',
components: { ExampleComponent } // Note!!!
});
You can find more information here: https://laracasts.com/discuss/channels/vue/little-help-with-laravel-and-vue-components-registration
Upvotes: 1