Mithril 不会自动重绘视图
Mithril doesnt auto redraw the view
当更改道具值时,秘银不会自动重绘视图,按一个按钮我更新我的道具为:
something.vm.test(something.vm.test() + 1);
它更新了 prop 值,但没有通过使用 m.redraw() 反映在视图上,它工作正常吗?
编辑道具不会触发重绘,但按钮点击事件会触发(您应该会看到道具的变化)。
是使用onclick
属性的秘银钮吗?还是非秘银点击事件?
如果您不使用秘银活动,则需要 m.redraw()
基本上,m.prop 是一个反应式数据源。 this code可能对你有帮助。
如果你想在秘银块之外工作,
用 m.startComputation()
和 m.endComputation()
拥抱道具
像这样。
m.startComputation();
something.vm.test(something.vm.test() + 1);
m.endComputation();
它很有魅力!
注意修改 m.prop getter-setters 的值不会触发重绘,这些函数在你通过 m.mount 或 [=21 初始化组件时由 Mithril 内部调用=],以及当您触发使用 m() 在模板中创建的事件处理程序时。
所以如果你想改变var的值,你可以使用m.prop()。
看这个例子:
controller: function() {
var list = [];
var element = m.prop('');
function addElement() {
list.push(element());
element('');
}
return {
list: list,
value: element,
addElement: addElement
}
m('button',{
onclick: ctrl.addElement
}, 'Add')],
在这种情况下,元素是 m.prop() 并且单击按钮时值会发生变化
当更改道具值时,秘银不会自动重绘视图,按一个按钮我更新我的道具为:
something.vm.test(something.vm.test() + 1);
它更新了 prop 值,但没有通过使用 m.redraw() 反映在视图上,它工作正常吗?
编辑道具不会触发重绘,但按钮点击事件会触发(您应该会看到道具的变化)。
是使用onclick
属性的秘银钮吗?还是非秘银点击事件?
如果您不使用秘银活动,则需要 m.redraw()
基本上,m.prop 是一个反应式数据源。 this code可能对你有帮助。
如果你想在秘银块之外工作,
用 m.startComputation()
和 m.endComputation()
像这样。
m.startComputation();
something.vm.test(something.vm.test() + 1);
m.endComputation();
它很有魅力!
注意修改 m.prop getter-setters 的值不会触发重绘,这些函数在你通过 m.mount 或 [=21 初始化组件时由 Mithril 内部调用=],以及当您触发使用 m() 在模板中创建的事件处理程序时。 所以如果你想改变var的值,你可以使用m.prop()。 看这个例子:
controller: function() {
var list = [];
var element = m.prop('');
function addElement() {
list.push(element());
element('');
}
return {
list: list,
value: element,
addElement: addElement
}
m('button',{
onclick: ctrl.addElement
}, 'Add')],
在这种情况下,元素是 m.prop() 并且单击按钮时值会发生变化