Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Grails模态对话框赢得';模板模型为空时不显示_Javascript_Grails - Fatal编程技术网

Javascript Grails模态对话框赢得';模板模型为空时不显示

Javascript Grails模态对话框赢得';模板模型为空时不显示,javascript,grails,Javascript,Grails,我正在尝试制作一个可重用的模板,当提供给它的模型为空时,我可以在这两种情况下使用它,当它不是空时。我不知道尝试在两种不同的情况下使用模板是否是最佳实践,但我只是认为重用代码可能会很好。提供模型后,文本字段将自动填充。如果不是,它们应该是空白的。此模板位于我用来显示的模式对话框中 我遇到的问题是,当提供给模板的模型为空时,模式对话框不会弹出。期望的结果是,当提供模型时,文本字段将自动填充,允许用户编辑和保存记录,而如果没有提供模型,文本字段将为空,用户可以填写它们以创建新记录。但是我甚至不能让mo

我正在尝试制作一个可重用的模板,当提供给它的模型为空时,我可以在这两种情况下使用它,当它不是空时。我不知道尝试在两种不同的情况下使用模板是否是最佳实践,但我只是认为重用代码可能会很好。提供模型后,文本字段将自动填充。如果不是,它们应该是空白的。此模板位于我用来显示的模式对话框中

我遇到的问题是,当提供给模板的模型为空时,模式对话框不会弹出。期望的结果是,当提供模型时,文本字段将自动填充,允许用户编辑和保存记录,而如果没有提供模型,文本字段将为空,用户可以填写它们以创建新记录。但是我甚至不能让model div在模型为空时显示。它至少应该显示静态内容吗?像文本字段标签和文本字段本身?以下是有关的标记:

<div class = "modal" id = "recordDetails">
        <div id="details"></div>
        <button id="save" class="close" type="button"/> Save </button>
        <button id="cancel" class="close" type="button"> Cancel </button>
        <div id="error_messages"></div>
    </div>

拯救
取消
“详细信息”是我使用此控制器操作将模板呈现到的div:

def displayRecordDetails() {
        println "<><><> Displaying record details."
        def recordToEdit = IndividualRecord.findWhere(batchID: selectedBatch.id, uniqueId: params.uniqueId, secondaryId: params.secondaryId)
        println "<><>< Record to edit: " + recordToEdit
        render(template: 'detailsScreen', model: [recordToEdit: recordToEdit])
    }
def displayRecordDetails(){
println“显示记录详细信息”
def recordToEdit=IndividualRecord.findWhere(批次id:selectedBatch.id,uniqueId:params.uniqueId,secondaryId:params.secondaryId)
println“<要编辑的记录:“+recordToEdit
呈现(模板:“detailsScreen”,模型:[recordToEdit:recordToEdit])
}
下面是呈现到“details”div中的模板本身:

编辑记录详细信息
唯一ID:
辅助ID:

名字:   中间名:   姓氏:
出生日期(年月日):

公民身份(两个字母的国家代码):
公民身份证明:
电话(aaa bbb cccc):

地址:
城市或城镇:
国家(两个字母的国家代码):

评论:

$(文档).ready(函数(){ $('#取消')。单击(函数(){ $('editIndivRecForm')。重置; }); //$(“#提交”)。单击(函数(){ //$('.modalInput').overlay().close(); // }); $(“#保存”)。单击(函数(){ console.log('save'); $(“#提交”)。触发(“单击”); $('editIndivRecForm')。重置; }); }); #独一无二的{ 宽度:90%; } #提交{ 可见性:隐藏; }
启动此模式的两种情况是,按下表格任何一行上的“编辑”图标按钮以编辑该记录(在这种情况下,提供了模型)。或者在需要创建新记录时按下“新建”按钮(未提供型号)。见下图


在控制器中使用此选项:

def recordToEdit = IndividualRecord.findWhere(batchID: selectedBatch.id, uniqueId: params.uniqueId, secondaryId: params.secondaryId) ?: new IndividualRecord()
如果搜索没有返回一个值,它将创建一个新对象

也许这能解决你的问题


祝项目顺利。

您的“新建”按钮应如下所示:

<button id = "new" class = "modalInput" rel = "#recordDetails"> New </button>
新建

这并没有解决问题。据我所知,这并没有改变任何事情。
<button id = "new" class = "modalInput" rel = "#recordDetails"> New </button>