为什么 vue js 组件没有显示在 laravel blade 中?
2019-02-14
179
我试图修复组件中的以下错误,但仍然失败。错误如下
[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 中,我以以下方式使用它:
@if($errors->has('password')) :error="'{{$errors->first('password')}}'" @endif></password-input>
在 app.js 中
我有以下脚本
Vue.component('password-input', require('./components/PasswordInput.vue'));
new Vue({
el: '#app'
});
有人可以指导我如何修复它吗?如果有人可以指导我解决这个问题,我将不胜感激。
2个回答
我认为此代码在语法上不正确,或者您可能遗漏了部分代码:
@if($errors->has('password')) :error="'{{$errors->first('password')}}'" @endif></password-input>
可能如下所示:
<password-input>
if($errors->has('password')) :error="'{{$errors >first('password')}}'" @endif
</password-input>
Johhn
2019-02-14
我同意这行代码有些奇怪;
@if($errors->has('password')) :error="'{{$errors->first('password')}}'" @endif></password-input>
您是否添加了组件标签的开头部分?即
<password-input @if($errors->has('password')) ...
但我不认为您可以在 Vue 组件中使用 optional 属性,因此如果没有错误,您就不会将任何东西传递给 Vue 组件。
也许可以尝试这样的方法:
<password-input
:error="'{{ $errors->has('password') ? $errors->first('password') : null }}'"
></password-input>
McCleery
2019-02-15