ruby-on-rails - 如何在 vue 组件中附加 <%= %> 和登录表单(设计)
问题描述
我有Vue组件
Vue.component('my-modal', {
template: '<div class="modal-open "> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Modal title</h5> <button type="button" class="close material-icons" data-dismiss="modal" aria-label="Close" @click="$emit(\'close\')" ><a class="material-icons" style="color: black">cancel</a></button></div> <div class="modal-body"> <p><%= User.find(1).name %></p> </div> <div class="modal-footer"> <button type="button" class="btn btn-primary">Save changes</button> <button type="button" class="btn btn-secondary" data-dismiss="modal" @click="$emit(\'close\')">Close</button> </div> </div> </div> </div>'
})
document.addEventListener('DOMContentLoaded', () => {
new Vue({
el: '#root',
data: {
showLoginModal: false
},
});
});
它是模态窗口。我想在模态窗口中呈现登录表单,但它在 vue 组件中
在组件中,我使用(例如)
<%= User.find(1).name %>
但它不起作用,显示为文本。如何在 vue 组件中集成 rails heplers 或登录表单???
解决方案
你不能。
如果要将数据传递给 vue 组件,可以使用props
:
# rails view
<my-modal name="<%= User.find(1).name %>"></my-modal>
# vue component
Vue.component('my-modal', {
template: `<div class="modal-open ">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<p>{{ name }}</p>
</div>
</div>
</div>
</div>`,
props: ['name']
})
如果你想在 vue 组件中显示 rails 表单,你可以使用slot
:
# rails view
<my-modal>
<%= form_for @whatever do |f| %>
...
<% end %>
</my-modal>
# vue component
Vue.component('my-modal', {
template: `<div class="modal-open ">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body">
<slot />
</div>
</div>
</div>
</div>`
})
推荐阅读
- javascript - JavaScript 运行时错误:“[MethodName]”未定义
- ios - 用 Sqlite 快速插入数据,我在两列中有相同的值
- java - 为什么应用程序可以在 API 19 上运行,但不能在 API 26 上运行?目标 API 28
- mysql - 如何从 MySQL group_by 数据集中排除特定的重复项?
- android - AlertDialog 中的 EditText 不会自动聚焦于 Android 9 (API 28)
- php - 我在 PHP 包含变量时遇到 include failed to open stream 错误
- c# - c# 广度优先搜索在迷宫中查找项目
- sidr - 用户单击链接时关闭 sidr 菜单
- c# - 当 Parallel.For 尚未完成时,如何处理 WM_PAINT?
- c# - 无法订阅节点 RosSharp C# Unity