Alpine Expression Error: createFormComponent is not defined
Alpine Expression Error: createFormComponent is not defined
我在 .NET Core 6 MVC 项目中使用 Alpine JS。我已经从 https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js 加载了 alpine js 文件。然后,我在 Home/Index.cshtml 文件中添加了以下代码。
<form id="myForm"
x-data="createFormComponent()"
x-on:submit.prevent="onSubmit">
<input id="email" type="text" name="email"
x-model="email" />
<span class="error" style="display: none"
x-show="error"
x-text="error"
></span>
<button type="submit">Submit</button>
</form>
@section Scripts {
<script>
(function () {
'use strict';
window.createFormComponent = function () {
return {
email: '',
error: '',
onSubmit($event) {
this.error = !this.email
? 'You must enter an email address'
: '';
},
};
};
})();
</script>
}
但是当我在浏览器中访问页面时,它总是抛出错误“Alpine Expression Error: createFormComponent is not defined”。我试图将它放入一个js文件并加载它。还尝试在 alpine:init 事件中定义组件。 None 他们成功了。相同的代码适用于 IIS 提供的纯 html 文件。我不确定这里出了什么问题。谁能帮帮忙
确保在您的 _Layout.cshtml
或当前页面 @section Scripts {...}
中添加 js,如下所示:
<script src="https://unpkg.com/alpinejs" defer></script>
注意:HTML必须添加defer
属性。
我在 .NET Core 6 MVC 项目中使用 Alpine JS。我已经从 https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js 加载了 alpine js 文件。然后,我在 Home/Index.cshtml 文件中添加了以下代码。
<form id="myForm"
x-data="createFormComponent()"
x-on:submit.prevent="onSubmit">
<input id="email" type="text" name="email"
x-model="email" />
<span class="error" style="display: none"
x-show="error"
x-text="error"
></span>
<button type="submit">Submit</button>
</form>
@section Scripts {
<script>
(function () {
'use strict';
window.createFormComponent = function () {
return {
email: '',
error: '',
onSubmit($event) {
this.error = !this.email
? 'You must enter an email address'
: '';
},
};
};
})();
</script>
}
但是当我在浏览器中访问页面时,它总是抛出错误“Alpine Expression Error: createFormComponent is not defined”。我试图将它放入一个js文件并加载它。还尝试在 alpine:init 事件中定义组件。 None 他们成功了。相同的代码适用于 IIS 提供的纯 html 文件。我不确定这里出了什么问题。谁能帮帮忙
确保在您的 _Layout.cshtml
或当前页面 @section Scripts {...}
中添加 js,如下所示:
<script src="https://unpkg.com/alpinejs" defer></script>
注意:HTML必须添加defer
属性。