gpt4 book ai didi

javascript - Meteor - 响应式(Reactive)更新非渲染数据

转载 作者:行者123 更新时间:2023-11-28 01:51:42 24 4
gpt4 key购买 nike

我是 Meteor 的新手,我正在尝试弄清楚它的响应式(Reactive)模型对于我想要做的事情是否灵活。我正在制作的应用程序是学习辅助工具,它基本上会反复测验用户并跟踪每个问题的分数。这些问题是 Mongo 集合,我希望客户端在用户回答问题时(即问题的“分数”属性发生变化时)更新数据库。但是,我没有渲染分数。

更糟糕的是,我正在渲染问题,但我没有将其作为模板属性来执行 - 我将调用 JS 函数的一个模板属性中的模板内容拼凑在一起。

Template.bottomText.explainText = function(){
var page=getPage();
switch(page){
case "main":
return "Foo text "+question.query+"?";
case "correct":
return "You got the question right! Score "+question.score;
}
};

我的应用程序不是我见过的典型的单屏 Meteor 程序。它具有屏幕上各个框的基本模板部分,但这些框的内容是用 JS 构建的,以组成各个 View 。因此,每个单独 View 没有自己的模板标签,因此屏幕上的问题和分数是JS的产物,而不是直接模板化。我尝试让 JS 调用模板来激发 react 性,但我似乎无法渲染它们。当 JS 中指定的模板的输出从 JS 返回时,它作为文字返回,而不是通过模板引擎运行。因此,没有模板直接将这些问题作为模板属性访问 - 呈现它们的 View 是在 JS 中动态拼凑在一起的一个模板属性。

那么...我仍然可以对这些问题对象使用react吗?如果是这样,怎么办?

最佳答案

首先要做的事情..您可能需要研究 Handlebars 助手 {{#isolate}} ,这将允许您控制每个 react 性更新渲染哪些模板元素。

但总的来说,听起来您的应用程序比实际需要的更加复杂。请浏览 docs.meteor.com,获取有关如何“思考”构建响应式(Reactive)应用程序的想法和帮助。

目前尚不清楚您想通过问题实现什么目标或您的问题是什么。您担心部分屏幕重新渲染吗?或者您是否担心向用户隐藏分数,直到您允许他们看到分数?

如果是这种情况,那么您可能需要使用发布/订阅模型;当确定客户准备好查看数据时,您将让客户订阅所需的数据;通过使用 meteor session 变量最容易完成。

关于javascript - Meteor - 响应式(Reactive)更新非渲染数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614403/

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