问题标签 [ractivejs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ractivejs - 活性数据数组中的身份
我有一个消息流对象,如下所示:
ractive.data.messages:
主模板:
渲染消息流:
渲染消息:
我更改“current_stream_id”以更改呈现的消息流。
在更新时,我像这样更改消息流的内容:
我还尝试了 compare: true 选项而不是函数,结果相同:
Ractive 总是认为这两条消息实际上属于同一个 DOM 元素,即使它们存在于完全不同的消息流中:
问题:
当有介绍/结尾动画时,ractive 动画始终只是消息流的结尾,即使流中间的消息被删除,我也需要帮助让 ractive 了解哪些消息是相同的。
当我更改 current_stream_id 时,ractive 不会重新渲染完整的 {{>render_message_stream}} 部分,而是进入现有 dom 并更改所有现有消息中的 {{message}} 字段,尽管这可能有利于 dom 元素重用,这会触发很多错误的动画。(例如,如果stream1 比stream2 多一条消息,它会触发流中最后一条消息的介绍/结尾动画)。
ractivejs - RactiveJS:根据文本输入值过滤 DIV 元素
我一直在尝试找到一个关于如何使用 RactiveJS 基于搜索文本框过滤 div 容器的示例。
我知道如何使用 Ractive 获取按键事件,但不确定如何以 RactiveJS 方式过滤模型。在按键事件期间保留数据的副本/历史记录似乎是个坏主意。我在这里想念什么?
events - 在触发代理事件之前如何做 preventDefault ?
任务与这篇文章中的相同 :捕获点击链接并阻止浏览器的默认行为。那里给出的答案是这样的:
模板:
JS:
问题是sayHello
事件处理程序不应该知道原始事件是什么。代理的全部意义在于事件处理程序不应该关心原始事件的类型。比如我把链接改成按钮,就不需要了preventDefault
。
所以,我的问题是如何在触发事件代理之前或之后调用 preventDefault 。
一个不错的解决方案是连续触发多个事件代理(如果可能的话):
模板:
JS:
这有可能吗?还是有其他不错的解决方案?
jquery - Ractive 组件的生命周期
除了调用 init 之外,我不确定 Ractive 组件的生命周期是什么。例如,什么时候直接访问 DOM 是安全的?我尝试使用流行的 sparklines jQuery 插件,但我从未成功过。我使用了一个指令,并且 - 瞧 - 可爱的迷你图。
关于组件在 Ractive 中接收什么样的事件和回调的任何文档?
javascript - RactiveJS - 条件结构中的高级条件
在 RactiveJS 的文档中,我们只是在模板中设置了条件来测试变量是真还是假……可以做更多的细节吗?
之类的{{#var==1 && var2==2}}HTML CODE{{/var}}
?
我有很多可能的表格,如果我需要观察每个变量来创造条件,那真的很长而且最难......
如果我们不能,有人可以给我一个建议,让我找到一个好的库来进行数据绑定 =)
编辑:
经过更多测试,我发现这段代码没问题
{{# var1 == '1' || var2 == '2'}}OK{{/}}
但是这段代码不是
{{# var1 == '1' && var2 == '2'}}OK{{/}}
这是正常的 ?
Plunkr => http://plnkr.co/edit/09OwnGzcf9SgJUSEdlC5?p=preview
javascript - 何时(或如何)使用 RactiveJS 设置 jQuery 事件处理程序?
我有一个主要用 jQuery 编写的普通客户端应用程序。我在一个特定页面上使用 Ractive,它非常有用。但是,所有旧的 jQuery 事件都不再附加,大概是因为在 Ractive 启动后 DOM 已经重新渲染。我尝试在 Ractive 渲染后设置事件,但这会导致一些奇怪的行为,丢失 DOM 元素和东西。我在哪里可以设置那些旧的 jQuery 处理程序,或者有可能吗?Ractive 渲染是否异步发生,如果是,是否有我应该听的事件?
我试过了
和
ractivejs - 我应该只使用一个 Ractive 实例还是多个?
我正在构建一个具有许多面板的移动应用程序,我想知道按面板拥有一个 Ractive 实例是否是一个好主意(在性能、内存使用、代码大小和易维护性方面),或者是否最好只整个应用程序的一个 Ractive 实例?为了便于维护,我倾向于使用许多实例,但我真的不知道它会如何影响性能和内存使用。
javascript - 如何在 Require.js 优化期间使用本地文件,但在运行时使用 CDN 托管版本?
我的页面包含多个作为独立 AMD 模块存在的组件。这些组件中的每一个都由 Require.js 优化器转换为单个文件。因为其中一些组件共享依赖项(例如 jQuery 和 d3),所以优化器paths
配置使用 CDN URL 来处理这些依赖项,而不是将它们捆绑到优化文件中。
这就是棘手的地方。我为Ractive.js编写了一个名为 rvc.js 的模块加载器插件,它允许我包含在 HTML 文件中定义的 Ractive 组件。(是的,我正在寻求有关如何使用我自己的库的帮助。)
这工作正常 - 像这样的代码得到优化,如你所料:
因为 Ractive 被多个组件使用,它应该由像 jQuery 和 d3 这样的 CDN 提供。但它在优化过程中被 rvc.js 使用,这意味着Ractive
优化器paths
配置的条目不能指向 CDN - 它必须指向本地文件。
有没有办法告诉 Require.js '在优化期间使用本地文件,但在运行时从 CDN 加载'?
ractivejs - 如何移动组件
我将组件的 0.4.0 分支用作 HTML 文件功能。我正在尝试执行以下操作:我有一个控制页面布局的组件。这个组件有一些子组件作为一个数组,并根据子组件中的一些数据将它们显示在页面的不同部分。类似于此的东西(由于布局限制,它们必须位于页面的不同部分):
该标志是从每个组件内的控件更新的。除了一个问题外,这很好用(每次我修改标志时都会刷新 DOM)。每次标志更改时都会重新创建子组件,而不是执行移动,例如,它被销毁并创建一个新的。这对我的用例来说是不幸的,原因有两个:
- 子组件具有相当高的创建成本(特别是在移动设备中),因为它执行一些图形工作。
- 子组件存储一些私有数据(对模型所做的更改的历史记录),这些数据要么 a)在移动到另一个部分时丢失,要么 b)必须存储在顶部组件中,从而污染其数据模型。
所以我想知道的是,有没有办法“移动”组件而不删除/重新创建它?
问候, V. Seguí
template-engine - 如何使用带有变量名的 ractivejs 部分?
我正在使用 ractivejs 在服务器和客户端上呈现 html。我希望有一个索引页面作为 ractivejs 实例,其中可以根据变量名称呈现页面模板,例如:
ractivejs 目前可以吗?