gpt4 book ai didi

javascript - 如何使用包含迭代的模板助手更新 meteor 中的 meteor 数据

转载 作者:行者123 更新时间:2023-11-28 07:15:46 26 4
gpt4 key购买 nike

我刚刚探索了meteor.js并进行了一些实验..我想使用文本框更新数据..但文本框是从模板助手迭代生成的..

所以,这个场景就像我们先输入数据,然后检索它,我们可以编辑我们的数据..所以当我们编辑时

问题是我无法从文本框中获取值..它总是“未定义”..这是我的html代码:

<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>

这是我的 js 代码:

TEST = new Mongo.Collection('TEST');

if (Meteor.isClient) {
Template.body.helpers({
a: function() {
return TEST.find();
}
});

Template.body.events({
'submit .InsertTEST' : function(event){

var _att1 = event.target.att1.value;
var _att3 = new Date();
var _att2 = Number(event.target.att2.value) + 10;

Meteor.call('InsertTEST', _att1, _att2, _att3);

event.target.att1.value = "";
event.target.att2.value = "";


return false;
}


});

Template.test.events({

'click .UpdateTEST' : function(e,t) {
var _att4 = $('#att4').val();
alert(_att4);


/*
var query = {
att1 : _att4,
att2 : _att5
};
*/
TEST.update(this._id, {$set:query});
return false;
}

});

}

if (Meteor.isServer) {
Meteor.methods({
'InsertTEST' : function(_att1, _att2, _att3) {

TEST.insert({
att1:_att1, att2:_att2
});

}

});
}

最佳答案

你知道为什么吗?您的 HTML 中有重复的 id。您多次渲染 ID att4att5 的输入。 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>

{{_id}} 将插入当前文档 ID 作为 HTML 元素的 ID。

然后,您可以在 UpdateTest 事件中使用 $('#' + this._id + numberOfInput).val() 访问输入值:

Template.test.events({

'click .UpdateTEST' : function(e,t) {
var _att4 = $('#' + this._id + 4).val();
var _att5 = $('#' + this._id + 5).val();
alert('_att4 = ' + _att4 + ', _att5 = ' + _att5);
}

});

关于javascript - 如何使用包含迭代的模板助手更新 meteor 中的 meteor 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30847362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com