Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Mongodb 如何在meteor.js上多次使用同一模板_Mongodb_Templates_Meteor_Handlebars.js - Fatal编程技术网

Mongodb 如何在meteor.js上多次使用同一模板

Mongodb 如何在meteor.js上多次使用同一模板,mongodb,templates,meteor,handlebars.js,Mongodb,Templates,Meteor,Handlebars.js,大约一周前,我才开始使用meteor,我正试图为一个项目编写我的第一个记录时间的应用程序 在一天结束时,用户可以进入由2个下拉选择菜单组成的单行记录他们的工作时间。首先是客户端下拉列表。然后基于该客户机(使用会话),客户机项目的第二个下拉列表将自动填充,最后允许您在文本输入中输入小时数 我有这个工作,但我还需要实现一个按钮,以便您可以一次添加多行。有点像jQuery Clone(),以防用户处理不同的客户端或客户端项目 我尝试在单击newRow后重新渲染该行,但是第二行会处理第一行,因为我假设它

大约一周前,我才开始使用meteor,我正试图为一个项目编写我的第一个记录时间的应用程序

在一天结束时,用户可以进入由2个下拉选择菜单组成的单行记录他们的工作时间。首先是客户端下拉列表。然后基于该客户机(使用会话),客户机项目的第二个下拉列表将自动填充,最后允许您在文本输入中输入小时数

我有这个工作,但我还需要实现一个按钮,以便您可以一次添加多行。有点像jQuery Clone(),以防用户处理不同的客户端或客户端项目

我尝试在单击newRow后重新渲染该行,但是第二行会处理第一行,因为我假设它们都引用同一个模板

简化?1) 如何复制上一行下面的内容,以及2)如何对一行或多行使用相同的模板,并且使它们不会相互影响

欢迎任何想法/帮助

    <form id="add_time">

    <template name="row">
    <ul>
        {{> clientsDD}}
        {{> projectsDD}}
        {{> hoursAndTasks}}
    </ul>
    </template> 

    <p><a href="#" id="newRow">Add another row</a>
    <input type="submit" id="submit_hours" value="Submit"/>

    </form>

    Template.clientsDD.clients = function() {

       return Clients.find({});

    }

    Template.projectsDD.projects = function(event) {

        return Projects.find({"client.clientId" : Session.get("clientSelected")});

    }



Template.addHours.events({


'change select[name="clientsDD"]' : function(event){

    newClient = $(event.target).val();
    Session.set("clientSelected", newClient);


},

'change select[name="projectsDD"]' : function(event){

    newProject = $(event.target).val();
}

});

    {{>clientsDD} {{>projectsDD} {{>hoursandstasks}
Template.clientsDD.clients=函数(){ 返回Clients.find({}); } Template.projectsDD.projects=功能(事件){ 返回Projects.find({“client.clientId”:Session.get(“clientSelected”)}); } Template.addHours.events({ “更改选择[name=“clientsDD”]:功能(事件){ newClient=$(event.target).val(); Session.set(“clientSelected”,newClient); }, “更改选择[name=“projectsDD”]:功能(事件){ newProject=$(event.target).val(); } });
在我看来,有两种方法可以做到这一点。因为Meteor不需要重新加载页面来更新您的内容。没有什么可以阻止您在完成时保存行,然后创建一个填充页面的循环。您的表单如下所示:

<form id="add_time">

{{#each rows}}
    {{> row}}
{{/each}}
{{> row}}

<input type="submit" id="submit_hours" value="Save and Add Another"/>
<input type="button" id="submit_and_exit" value="Save and Exit"/>

</form>

<template name="row">
<ul>
    {{> clientsDD _id}}
    {{> projectsDD _id}}
    {{> hoursAndTasks _id}}
</ul>
</template>

{{#每行}
{{>行}
{{/每个}}
{{>行}
    {{>clientsDD_id} {{>projectsDD\u id} {{>hoursandstasks}
这将循环通过一个
帮助程序,该帮助程序包含小时数数据,显示该数据以供编辑,同时提供一个新的空行。这将在保存时自动更新,无需任何DOM操作

另一个选项是复制字段。我不知道有哪种方法允许您复制模板,但jQuery克隆类型函数没有理由不起作用,但是您需要确保在保存时它们是单独保存的
clientsDD[]
作为输入名称应该可以,只要您为每组字段指定一个唯一的id即可


我个人会使用第一种方法you as IMHO这是Meteor设计的工作方式,因此您无需操纵DOM,因为它将与数据存储无缝更新。

我认为有两种方法可以做到这一点。因为Meteor不需要重新加载页面来更新您的内容。没有什么可以阻止您在完成时保存行,然后创建一个填充页面的循环。您的表单如下所示:

<form id="add_time">

{{#each rows}}
    {{> row}}
{{/each}}
{{> row}}

<input type="submit" id="submit_hours" value="Save and Add Another"/>
<input type="button" id="submit_and_exit" value="Save and Exit"/>

</form>

<template name="row">
<ul>
    {{> clientsDD _id}}
    {{> projectsDD _id}}
    {{> hoursAndTasks _id}}
</ul>
</template>

{{#每行}
{{>行}
{{/每个}}
{{>行}
    {{>clientsDD_id} {{>projectsDD\u id} {{>hoursandstasks}
这将循环通过一个
帮助程序,该帮助程序包含小时数数据,显示该数据以供编辑,同时提供一个新的空行。这将在保存时自动更新,无需任何DOM操作

另一个选项是复制字段。我不知道有哪种方法允许您复制模板,但jQuery克隆类型函数没有理由不起作用,但是您需要确保在保存时它们是单独保存的
clientsDD[]
作为输入名称应该可以,只要您为每组字段指定一个唯一的id即可

我个人会使用第一种方法,这是Meteor设计的工作方式,因此您无需操纵DOM,因为它将与数据存储无缝更新