gpt4 book ai didi

javascript - 通过 Meteor 中的路由器填充模板

转载 作者:行者123 更新时间:2023-11-30 16:46:59 25 4
gpt4 key购买 nike

我有一个 Meteor 应用程序。我创建了一个集合 Messages

我在服务器上发布消息

Meteor.publish("messages", function () {
return Messages.find({'isDeleted': {$ne : true}}, {sort: {createdAt: -1}});
});

我正在使用 iron-router 进行路由:

this.route('messages', {
path: '/messages',
template: 'messages',
waitOn: function() {
return Meteor.subscribe('messages');
},
data: function() {
return Messages.find({}, {sort: {createdAt: -1}});
}
});

有了这个功能,我使用了 data: ... 但我仍然需要在 messages.js 中使用 helper 来实际获取数据:

Template.messages.helpers({
messages: function() {
return Messages.find({}, {sort: {createdAt: -1}});
},
});

现在我准备好使用模板中的消息了

{{#each messages}}
{{> message}}
{{/each}}

我这样做是否正确,或者我是否可以避免使用帮助程序,而只是让路由器用数据填充模板?在我看来,我所做的一切都是多余的。

最佳答案

是否应该使用来自路由器的 data 是个人喜好问题。假设您决定使用它...

  1. 你可以移除你的助手。你是对的 - 这是多余的。
  2. 模板的数据上下文是this,因此您可以将模板代码更改为:
{{#each this}}
{{> message}}
{{/each}}

或者,如果您想避免在模板中使用 this,只需按如下方式修改您的 data:

data: function() {
return {messages: Messages.find({}, {sort: {createdAt: -1}})};
}

现在您可以保留原始模板代码:

{{#each messages}}
{{> message}}
{{/each}}

关于javascript - 通过 Meteor 中的路由器填充模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31086106/

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