Javascript 如何使用包含迭代的模板助手更新meteor中meteor的数据
我刚刚探索了meteor.js并做了一些实验。。我想使用文本框更新数据。。但是文本框是从模板助手迭代生成的 所以,这个场景就像我们先输入数据,然后再检索数据,我们可以编辑数据。。所以当我们编辑 问题是我无法从文本框中获取值。。它总是“未定义的”。。以下是我的html代码:Javascript 如何使用包含迭代的模板助手更新meteor中meteor的数据,javascript,jquery,meteor,textbox,updates,Javascript,Jquery,Meteor,Textbox,Updates,我刚刚探索了meteor.js并做了一些实验。。我想使用文本框更新数据。。但是文本框是从模板助手迭代生成的 所以,这个场景就像我们先输入数据,然后再检索数据,我们可以编辑数据。。所以当我们编辑 问题是我无法从文本框中获取值。。它总是“未定义的”。。以下是我的html代码: <body> <form class="InsertTEST"> <input type="text" name="att1" placeholder="fill the
<body>
<form class="InsertTEST">
<input type="text" name="att1" placeholder="fill the att1"/>
<input type="text" name="att2" placeholder="fill the att3"/>
<input type="submit" value="submit"/>
</form>
<table>
{{#each a}}
{{> test}}
{{/each}}
</table>
</body>
<template name="test">
<tr class="testRow">
<td><input type="checkbox" class="toogle-check"></td>
<td><input type="text" id="att4" value="{{att1}}"/></td>
<td><input type="text" id="att5" value="{{att2}}"/></td>
<td><a href="#">{{att3}}</a></td>
<td><button class="UpdateTEST">Update</button></td>
<td><button class="DeleteTEST">Remove</button></td>
</tr>
</template>
首先,不要给你的助手起名为“a”,你需要一个合适的名字。其次,你不应该在流星中使用
body
标签。它由服务器生成,您的模板将加载到其中
假设您的父模板名为MainTemplate
您的助手可能是这样的:
Template.MainTemplate.helpers({
"item":function(){
return TEST.find();
}
});
您只需将spacebars迭代替换为以下内容:
{{#each item}}
{{> test}}
{{/each}}
当您得到未定义的内容时,一个好的做法是尝试将其父项(
console.log(this);
记录在Template.test.rendered
函数中)。它允许您找到调用对象的正确方法(即对象在模板中的位置)。首先,不要将助手命名为“a”,您需要获得正确的名称。其次,你不应该在流星中使用body
标签。它由服务器生成,您的模板将加载到其中
假设您的父模板名为MainTemplate
您的助手可能是这样的:
Template.MainTemplate.helpers({
"item":function(){
return TEST.find();
}
});
您只需将spacebars迭代替换为以下内容:
{{#each item}}
{{> test}}
{{/each}}
当您得到未定义的内容时,一个好的做法是尝试将其父项(
console.log(this);
记录在Template.test.rendered
函数中)。它允许您找到调用对象的正确方法(即它在模板中的位置)。您知道为什么吗?您的HTML中有重复的ID。可以多次渲染id为att4和att5的输入。ID在HTML文档中应该是唯一的。您应该将静态ID替换为测试模板中forEach循环内部使用的动态ID:
<td><input type="text" id="{{_id}}4" value="{{att1}}"/></td>
<td><input type="text" id="{{_id}}5" value="{{att2}}"/></td>
你知道为什么吗?您的HTML中有重复的ID。可以多次渲染id为att4和att5的输入。ID在HTML文档中应该是唯一的。您应该将静态ID替换为测试模板中forEach循环内部使用的动态ID:
<td><input type="text" id="{{_id}}4" value="{{att1}}"/></td>
<td><input type="text" id="{{_id}}5" value="{{att2}}"/></td>
嗨,Billybbonne,谢谢你的回答。。我会接受你关于正确名称和标签正文的建议:D。。关于渲染的东西,我会先试试。。谢谢你的回答。。我会接受你关于正确名称和标签正文的建议:D。。关于渲染的东西,我会先试试。。谢谢你的回答。。我会接受你关于正确名称和标签正文的建议:D。。关于渲染的东西,我会先试试。。谢谢Tomas Hromonik谢谢你的帮助。。我已经试过了,但它仍然返回未定义的值。哦,对不起,我的代码中有一个小错误,现在就试试。它应该有效;-)嗨,托马斯,谢谢你的帮助,它现在可以工作了。。顺便问一下,关于语法,它叫jquery还是javascript?对不起,我问了个愚蠢的问题。。我还是worldHi Tomas Hromonik编程新手,谢谢你的帮助。。我已经试过了,但它仍然返回未定义的值。哦,对不起,我的代码中有一个小错误,现在就试试。它应该有效;-)嗨,托马斯,谢谢你的帮助,它现在可以工作了。。顺便问一下,关于语法,它叫jquery还是javascript?对不起,我问了个愚蠢的问题。。我还是worldHi Tomas Hromonik编程新手,谢谢你的帮助。。我已经试过了,但它仍然返回未定义的值。哦,对不起,我的代码中有一个小错误,现在就试试。它应该有效;-)嗨,托马斯,谢谢你的帮助,它现在可以工作了。。顺便问一下,关于语法,它叫jquery还是javascript?对不起,我问了个愚蠢的问题。。我还是编程界的新手