开发者问题收集

如何修复 Vue 警告]:未知的自定义元素:<password-input>?

2019-02-13
1093

我试图修复组件中的以下错误,但仍然失败。错误如下:

[Vue warn]: Unknown custom element: - did you register the component correctly? For recursive components, make sure to provide the "name" option.

在我的密码组件中,以下脚本中有以下内容:

<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>

问题是,页面打开时 vue 组件未加载,刷新后错误消失。

在 laravel blade 中,我以以下方式使用它:

<password-input @if($errors->has('password')) :error="'{{$errors->first('password')}}'" @endif></password-input>

在 app.js 中

我有以下脚本

new Vue({
    el: '#app'
});

有人可以指导我如何修复它吗?如果有人可以指导我解决这个问题,我将不胜感激。我已经看到了这个 问题 ,但它并没有解决我的问题。

2个回答

组件是否已注册,通常是在 app.js 文件中创建 Vue 实例时。

const app = new Vue({
    el: '#app',
    components: { ExampleComponent } // Note!!!
});

您可以在此处找到更多信息: https://laracasts.com/discuss/channels/vue/little-help-with-laravel-and-vue-components-registration

jtlad
2019-02-13

嘿,你有没有搞清楚这个问题?我整天都在为同样的事情而苦苦挣扎。断断续续的部分一直在扼杀我的工作效率。不管怎样。像你一样,我在 <template> 部分中使用 ="this.myVar" 而不是 ="myVar" ,当我更改它时,问题就再也没有发生过。

sl1der
2019-07-22