我正在使用Rivets.js在rv-each- *块中绘制一些组件
页面加载时它们都可以正常渲染。 当我拼接模型的第一个元素时,模型正确地删除了第一个元素,但rv-each- *块删除了最后一个元素。
组件只是由一个按钮组成,该按钮包含它所绑定的对象值的文本。在每个组件调用旁边,我打印一些也绑定到每个对象值的文本。两者应该是相同的,但在拼接之后它们不是。
var model2 = [{ "value":"1"},{"value":"2"},{"value":"3"}];
rivets.components['control'] = {
template: function() {
return '<button>{data.option.value}</button>';
},
initialize: function(el, attributes) {
return new controlviewmodel(attributes);
}
};
function doSplice()
{
model2.splice(0,1);
}
<table id="view">
<tr rv-each-option="model">
<td>
<control option="option"/>
</td>
<td>{option.value}</td>
</tr>
</table>
我创造了一个小提琴试图表明我的问题:http://jsfiddle.net/dko9b9k4/
我做错了什么还是这个错误?
编辑:可以通过更改
来修复此示例return new controlviewmodel(attributes);
到return attributes;