gpt4 book ai didi

javascript - 获取 Meteor 0.9.1.1 点击事件来更新对象

转载 作者:行者123 更新时间:2023-11-28 00:59:48 24 4
gpt4 key购买 nike

我只是在尝试不同的模式,并且对编程非常陌生,但是到目前为止,除了这个之外,我已经在我的测试应用程序中完成了所有工作。我尝试了很多变体,但没有成功,但我怀疑我错过了一些非常简单的东西。

基本上,我想要发生的是用户单击一个按钮,然后更新当前对象的两个特定属性的值。

在此示例中,我希望当用户单击“返回”按钮时发生更新(下面显示的其他按钮工作正常)。

以下是相关按钮的 HTML 模板:

<template name="bookDetails">
<div class="post">
<div class="post-content">
<h3>{{title}}</h3><span> {{author}}</span>

{{#if onLoan}}
<i class="fa fa-star"></i>
On loan to: {{lender}}{{/if}}
</div>


{{#if ownBook}}
<a href="{{pathFor 'bookEdit'}}" class="discuss btn">Edit</a>
<a href="{{pathFor 'bookLoan'}}" class="discuss btn">Lend</a>
<div class="control-group">
<div class="controls">
<a class="discuss btn return" href="">Return </a>
</div>
</div>
{{/if}}
</div>
</template>

这是包含我的模板事件的 .js 文件。基本上我想设置“lendstatus”和“lender”属性的值。

Template.bookDetails.helpers({
ownBook: function() {
return this.userId == Meteor.userId();
},
onLoan: function() {
return this.lendstatus == 'true';
}
});

Template.bookLoan.events({
'click .return': function(e) {
e.preventDefault();
var currentBookId = this._id;
var bookProperties = {
lendstatus: "false",
lender: "",
}

Books.update(currentBookId, {$set: bookProperties}, function(error) {
if (error) {
// display the error to the user
throwError(error.reason);
} else {
Router.go('bookPage', {_id: currentBookId});
}
});
},
});

如果我在 ID 为 ZLDvXZ9esfp8yEmJu 的对象页面上在浏览器控制台中输入以下内容,我会在屏幕上看到正确的行为并且数据库会更新,所以我知道我已经接近了:

Books.update({ _id: "ZLDvXZ9esfp8yEmJu"}, {$set: {lendstatus: "false", lender: ""}});

我错过了什么?

最佳答案

好的 - 所以我的问题是我在错误的模板中定义了事件处理程序。我在 bookLoan 模板而不是 bookDetails 模板中定义了它。感谢@saimeunt 指出了这一点!

关于javascript - 获取 Meteor 0.9.1.1 点击事件来更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25757153/

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