我在Meteor中使用Reactive Array包,无法弄清楚如何更改数组中的值并重新运行帮助程序。这是一个基本的东西,我必须遗漏一些明显但我无法找到答案的东西。这是我的代码:
在客户端:
test_arr = new ReactiveArray([3]);
助手:
UI.registerHelper('array_test', function(){
return test_arr.list();
});
在模板中:
{{array_test}}
在屏幕上,我看到了' 3'正如所料,但如果我用这个改变反应数组的值:
test_arr[0] = 4
屏幕上没有任何变化,即使我在控制台中运行test_arr.list(),我看到[4]
。如果我用:
test_arr.push(5)
然后帮助程序重新运行,我在屏幕上看到4,5
,正确。所以价值已经改变了,但是在我执行了一个不相关的推动之前,帮助者没有重新运行。操作
我无法在文档中看到有关更新值的任何内容,只能添加和删除值。
有没有办法更新反应式数组中的值,反应性?
答案 0 :(得分:1)
您可以使用ReactiveArray.splice()
替换无效数组中的元素,甚至可以创建处理单个元素的便捷方法:
ReactiveArray.prototype.setAt = function(pos, item) {
return this.splice(pos, 1, item);
};
arr = new ReactiveArray(['a', 'b', 'c']);
// ["a", "b", "c"]
arr[0];
// "a"
arr.setAt(0, "newVal");
// ["a"]
arr[0];
// "newVal"
答案 1 :(得分:0)
当您按索引在数组中设置值时,看起来这个包不支持反应源。尝试检查一下package。